diff --git a/Rakefile b/Rakefile
index eb2f158972d5c85227b7aa8e045e919189c0dfc6..9545516d2a916a77164bb3a04e65b4ae398d2b07 100755
--- a/Rakefile
+++ b/Rakefile
@@ -11,6 +11,8 @@ require File.expand_path('config/application', __dir__)
 relative_url_conf = File.expand_path('config/initializers/relative_url', __dir__)
 require relative_url_conf if File.exist?("#{relative_url_conf}.rb")
 
+require File.expand_path('config/initializers/01_active_record_database_tasks_configuration_flag.rb', __dir__)
+
 Gitlab::Application.load_tasks
 
 Knapsack.load_tasks if defined?(Knapsack)
diff --git a/config/initializers/01_active_record_database_tasks_configuration_flag.rb b/config/initializers/01_active_record_database_tasks_configuration_flag.rb
new file mode 100644
index 0000000000000000000000000000000000000000..37374a41a30c1ddc1885069d0407c70d9205f7e0
--- /dev/null
+++ b/config/initializers/01_active_record_database_tasks_configuration_flag.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+if Rails::VERSION::MAJOR >= 7
+  raise "Remove `#{__FILE__}`. This is backport of `database_tasks:` Rails 7.x feature."
+end
+
+# This backports `database_tasks:` feature to skip running migrations for some databases
+# PR: https://github.com/rails/rails/pull/42794/files
+
+module DatabaseTasks
+  module ActiveRecordDatabaseConfigurations
+    def configs_for(env_name: nil, name: nil, include_replicas: false)
+      configs = super
+
+      unless include_replicas
+        if name
+          configs = nil unless configs&.database_tasks?
+        else
+          configs = configs.select do |db_config|
+            db_config.database_tasks?
+          end
+        end
+      end
+
+      configs
+    end
+  end
+
+  module ActiveRecordDatabaseConfigurationsHashConfig
+    def database_tasks? # :nodoc:
+      !replica? && !!configuration_hash.fetch(:database_tasks, true)
+    end
+  end
+end
+
+ActiveRecord::DatabaseConfigurations.prepend(DatabaseTasks::ActiveRecordDatabaseConfigurations)
+ActiveRecord::DatabaseConfigurations::HashConfig.prepend(DatabaseTasks::ActiveRecordDatabaseConfigurationsHashConfig)