diff options
Diffstat (limited to 'db/migrate/20171114150259_merge_requests_author_id_foreign_key.rb')
-rw-r--r-- | db/migrate/20171114150259_merge_requests_author_id_foreign_key.rb | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/db/migrate/20171114150259_merge_requests_author_id_foreign_key.rb b/db/migrate/20171114150259_merge_requests_author_id_foreign_key.rb deleted file mode 100644 index 4ebb6fad059..00000000000 --- a/db/migrate/20171114150259_merge_requests_author_id_foreign_key.rb +++ /dev/null @@ -1,43 +0,0 @@ -# See http://doc.gitlab.com/ce/development/migration_style_guide.html -# for more information on how to write migrations for GitLab. - -class MergeRequestsAuthorIdForeignKey < ActiveRecord::Migration[4.2] - include Gitlab::Database::MigrationHelpers - - # Set this constant to true if this migration requires downtime. - DOWNTIME = false - - disable_ddl_transaction! - - class MergeRequest < ActiveRecord::Base - include EachBatch - - self.table_name = 'merge_requests' - - def self.with_orphaned_authors - where('NOT EXISTS (SELECT true FROM users WHERE merge_requests.author_id = users.id)') - .where('author_id IS NOT NULL') - end - end - - def up - # Replacing the ghost user ID logic would be too complex, hence we don't - # redefine the User model here. - ghost_id = User.select(:id).ghost.id - - MergeRequest.with_orphaned_authors.each_batch(of: 100) do |batch| - batch.update_all(author_id: ghost_id) - end - - add_concurrent_foreign_key( - :merge_requests, - :users, - column: :author_id, - on_delete: :nullify - ) - end - - def down - remove_foreign_key(:merge_requests, column: :author_id) - end -end |