summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett Walker <brett@digitalmoksha.com>2017-09-09 11:05:59 +0200
committerBrett Walker <brett@digitalmoksha.com>2017-09-23 15:23:11 +0200
commit86698c960bb95e51bc6141b361ba3f1ee79abcdf (patch)
treed5384826b7f3bb1f9016b2d361bc4947b1e2158b
parentecdf851335ff10a6daade26cbf79bea8b897858e (diff)
downloadgitlab-ce-86698c960bb95e51bc6141b361ba3f1ee79abcdf.tar.gz
use `add_concurrent_index` to add the :confirmation_token index
-rw-r--r--db/migrate/20170904092148_add_email_confirmation.rb1
-rw-r--r--db/migrate/20170909090114_add_email_confirmation_index.rb36
2 files changed, 36 insertions, 1 deletions
diff --git a/db/migrate/20170904092148_add_email_confirmation.rb b/db/migrate/20170904092148_add_email_confirmation.rb
index b4c574b6a99..b6ecf1dd9da 100644
--- a/db/migrate/20170904092148_add_email_confirmation.rb
+++ b/db/migrate/20170904092148_add_email_confirmation.rb
@@ -29,6 +29,5 @@ class AddEmailConfirmation < ActiveRecord::Migration
add_column :emails, :confirmation_token, :string
add_column :emails, :confirmed_at, :datetime
add_column :emails, :confirmation_sent_at, :datetime
- add_index :emails, :confirmation_token, unique: true
end
end
diff --git a/db/migrate/20170909090114_add_email_confirmation_index.rb b/db/migrate/20170909090114_add_email_confirmation_index.rb
new file mode 100644
index 00000000000..e488f339247
--- /dev/null
+++ b/db/migrate/20170909090114_add_email_confirmation_index.rb
@@ -0,0 +1,36 @@
+# See http://doc.gitlab.com/ce/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+class AddEmailConfirmationIndex < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ # Set this constant to true if this migration requires downtime.
+ DOWNTIME = false
+
+ # When a migration requires downtime you **must** uncomment the following
+ # constant and define a short and easy to understand explanation as to why the
+ # migration requires downtime.
+ # DOWNTIME_REASON = ''
+
+ # When using the methods "add_concurrent_index", "remove_concurrent_index" or
+ # "add_column_with_default" you must disable the use of transactions
+ # as these methods can not run in an existing transaction.
+ # When using "add_concurrent_index" or "remove_concurrent_index" methods make sure
+ # that either of them is the _only_ method called in the migration,
+ # any other changes should go in a separate migration.
+ # This ensures that upon failure _only_ the index creation or removing fails
+ # and can be retried or reverted easily.
+ #
+ # To disable transactions uncomment the following line and remove these
+ # comments:
+ disable_ddl_transaction!
+
+ # Not necessary to remove duplicates, as :confirmation_token is a new column
+ def up
+ add_concurrent_index :emails, :confirmation_token, unique: true
+ end
+
+ def down
+ remove_index :emails, :confirmation_token if index_exists?(:emails, :confirmation_token)
+ end
+end