X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/9f64b0848f01fb849849380ff32756228a35eca6..d717f2d02a9f767237d103dc206e30e3a4a8c056:/db/migrate/022_order_relation_members.rb diff --git a/db/migrate/022_order_relation_members.rb b/db/migrate/022_order_relation_members.rb index e3820d4e6..5500edfcf 100644 --- a/db/migrate/022_order_relation_members.rb +++ b/db/migrate/022_order_relation_members.rb @@ -8,26 +8,26 @@ class OrderRelationMembers < ActiveRecord::Migration # update the sequence column with default (partial) ordering by # element ID. the sequence ID is a smaller int type, so we can't # just copy the member_id. - ActiveRecord::Base.connection().execute("update relation_members set sequence_id = mod(member_id, 16384)") + execute("update relation_members set sequence_id = mod(member_id, 16384)") # need to update the primary key to include the sequence number, # otherwise the primary key will barf when we have repeated members. # mysql barfs on this anyway, so we need a single command. this may # not work in postgres... needs testing. - ActiveRecord::Base.connection().execute("alter table relation_members drop primary key, add primary key (id, version, member_type, member_id, member_role, sequence_id)") + alter_primary_key("relation_members", [:id, :version, :member_type, :member_id, :member_role, :sequence_id]) # do the same for the current tables add_column(:current_relation_members, :sequence_id, :integer, :default => 0, :null => false) - ActiveRecord::Base.connection().execute("update current_relation_members set sequence_id = mod(member_id, 16384)") - ActiveRecord::Base.connection().execute("alter table current_relation_members drop primary key, add primary key (id, member_type, member_id, member_role, sequence_id)") + execute("update current_relation_members set sequence_id = mod(member_id, 16384)") + alter_primary_key("current_relation_members", [:id, :member_type, :member_id, :member_role, :sequence_id]) end def self.down - ActiveRecord::Base.connection().execute("alter table current_relation_members drop primary key, add primary key (id, member_type, member_id, member_role)") + alter_primary_key("current_relation_members", [:id, :member_type, :member_id, :member_role]) remove_column :relation_members, :sequence_id - ActiveRecord::Base.connection().execute("alter table relation_members drop primary key, add primary key (id, version, member_type, member_id, member_role)") + alter_primary_key("relation_members", [:id, :version, :member_type, :member_id, :member_role]) remove_column :current_relation_members, :sequence_id end end