summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-09-12 10:39:58 +0000
committerRémy Coutable <remy@rymai.me>2017-09-12 10:39:58 +0000
commit0d3f6a54883337c3e7d0e705674908ba65be57dc (patch)
treec4b54c9932f294898a5385aeb753f7707bf48914
parentc36eeffbe8b034c3cd761d2eafc6989e56b3de6a (diff)
parent1e1c075d30e263abc13c13eb6d996b4c7ba2905a (diff)
downloadgitlab-ce-0d3f6a54883337c3e7d0e705674908ba65be57dc.tar.gz
Merge branch 'reset-events-primary-key-mysql' into 'master'
Reset primary keys after swapping events tables See merge request !14182
-rw-r--r--db/migrate/20170830131015_swap_event_migration_tables.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/db/migrate/20170830131015_swap_event_migration_tables.rb b/db/migrate/20170830131015_swap_event_migration_tables.rb
index 5128d1b2fe7..a256de4a8af 100644
--- a/db/migrate/20170830131015_swap_event_migration_tables.rb
+++ b/db/migrate/20170830131015_swap_event_migration_tables.rb
@@ -7,6 +7,10 @@ class SwapEventMigrationTables < ActiveRecord::Migration
# Set this constant to true if this migration requires downtime.
DOWNTIME = false
+ class Event < ActiveRecord::Base
+ self.table_name = 'events'
+ end
+
def up
rename_tables
end
@@ -19,5 +23,25 @@ class SwapEventMigrationTables < ActiveRecord::Migration
rename_table :events, :events_old
rename_table :events_for_migration, :events
rename_table :events_old, :events_for_migration
+
+ # Once swapped we need to reset the primary key of the new "events" table to
+ # make sure that data created starts with the right value. This isn't
+ # necessary for events_for_migration since we replicate existing primary key
+ # values to it.
+ if Gitlab::Database.postgresql?
+ reset_primary_key_for_postgresql
+ else
+ reset_primary_key_for_mysql
+ end
+ end
+
+ def reset_primary_key_for_postgresql
+ reset_pk_sequence!(Event.table_name)
+ end
+
+ def reset_primary_key_for_mysql
+ amount = Event.pluck('COALESCE(MAX(id), 1)').first
+
+ execute "ALTER TABLE #{Event.table_name} AUTO_INCREMENT = #{amount}"
end
end