summaryrefslogtreecommitdiff
path: root/lib/gitlab/database.rb
diff options
context:
space:
mode:
authorDJ Mountney <david@twkie.net>2018-09-11 18:41:14 -0700
committerDJ Mountney <david@twkie.net>2018-09-11 18:41:14 -0700
commit76cfe4f1fdadf0b4e43d066ffccbe34fbfcb9a80 (patch)
treee955231d7515168788b6a6872f774e05fd84491e /lib/gitlab/database.rb
parentf6097cbfaa1fae7cceef583bb3dbbd85286c80c2 (diff)
downloadgitlab-ce-76cfe4f1fdadf0b4e43d066ffccbe34fbfcb9a80.tar.gz
Ensure the schema is loaded with post_migrations included
If doing a schema load, the post_migrations should also be marked as up, even if SKIP_POST_DEPLOYMENT_MIGRATIONS was set, otherwise future migration runs will be broken.
Diffstat (limited to 'lib/gitlab/database.rb')
-rw-r--r--lib/gitlab/database.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/gitlab/database.rb b/lib/gitlab/database.rb
index 8eacad078c8..42f9605f5ac 100644
--- a/lib/gitlab/database.rb
+++ b/lib/gitlab/database.rb
@@ -249,5 +249,21 @@ module Gitlab
end
private_class_method :database_version
+
+ def self.add_post_migrate_path_to_rails(force: false)
+ return if ENV['SKIP_POST_DEPLOYMENT_MIGRATIONS'] && !force
+
+ Rails.application.config.paths['db'].each do |db_path|
+ path = Rails.root.join(db_path, 'post_migrate').to_s
+
+ unless Rails.application.config.paths['db/migrate'].include? path
+ Rails.application.config.paths['db/migrate'] << path
+
+ # Rails memoizes migrations at certain points where it won't read the above
+ # path just yet. As such we must also update the following list of paths.
+ ActiveRecord::Migrator.migrations_paths << path
+ end
+ end
+ end
end
end