Commit 0d3f6a54 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'reset-events-primary-key-mysql' into 'master'

Reset primary keys after swapping events tables

See merge request !14182
parents c36eeffb 1e1c075d
...@@ -7,6 +7,10 @@ class SwapEventMigrationTables < ActiveRecord::Migration ...@@ -7,6 +7,10 @@ class SwapEventMigrationTables < ActiveRecord::Migration
# Set this constant to true if this migration requires downtime. # Set this constant to true if this migration requires downtime.
DOWNTIME = false DOWNTIME = false
class Event < ActiveRecord::Base
self.table_name = 'events'
end
def up def up
rename_tables rename_tables
end end
...@@ -19,5 +23,25 @@ class SwapEventMigrationTables < ActiveRecord::Migration ...@@ -19,5 +23,25 @@ class SwapEventMigrationTables < ActiveRecord::Migration
rename_table :events, :events_old rename_table :events, :events_old
rename_table :events_for_migration, :events rename_table :events_for_migration, :events
rename_table :events_old, :events_for_migration 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
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment