Merge pull request #4300 from tomhughes/relation-members-primary-key
Simplify primary key for relation members tables
This commit is contained in:
commit
6e28c5fe19
7 changed files with 19 additions and 7 deletions
|
@ -20,7 +20,6 @@
|
|||
|
||||
class OldRelationMember < ApplicationRecord
|
||||
self.table_name = "relation_members"
|
||||
self.primary_key = %w[relation_id version sequence_id]
|
||||
|
||||
belongs_to :old_relation, :query_constraints => [:relation_id, :version], :inverse_of => :old_members
|
||||
# A bit messy, referring to the current tables, should do for the data browser for now
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
class RelationMember < ApplicationRecord
|
||||
self.table_name = "current_relation_members"
|
||||
self.primary_key = %w[relation_id sequence_id]
|
||||
|
||||
belongs_to :relation
|
||||
belongs_to :member, :polymorphic => true
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
class CorrectRelationMembersPrimaryKey < ActiveRecord::Migration[7.0]
|
||||
def up
|
||||
alter_primary_key :current_relation_members, [:relation_id, :sequence_id]
|
||||
alter_primary_key :relation_members, [:relation_id, :version, :sequence_id]
|
||||
end
|
||||
|
||||
def down
|
||||
alter_primary_key :relation_members, [:relation_id, :version, :member_type, :member_id, :member_role, :sequence_id]
|
||||
alter_primary_key :current_relation_members, [:relation_id, :member_type, :member_id, :member_role, :sequence_id]
|
||||
end
|
||||
end
|
|
@ -1883,7 +1883,7 @@ ALTER TABLE ONLY public.current_nodes
|
|||
--
|
||||
|
||||
ALTER TABLE ONLY public.current_relation_members
|
||||
ADD CONSTRAINT current_relation_members_pkey PRIMARY KEY (relation_id, member_type, member_id, member_role, sequence_id);
|
||||
ADD CONSTRAINT current_relation_members_pkey PRIMARY KEY (relation_id, sequence_id);
|
||||
|
||||
|
||||
--
|
||||
|
@ -2107,7 +2107,7 @@ ALTER TABLE ONLY public.redactions
|
|||
--
|
||||
|
||||
ALTER TABLE ONLY public.relation_members
|
||||
ADD CONSTRAINT relation_members_pkey PRIMARY KEY (relation_id, version, member_type, member_id, member_role, sequence_id);
|
||||
ADD CONSTRAINT relation_members_pkey PRIMARY KEY (relation_id, version, sequence_id);
|
||||
|
||||
|
||||
--
|
||||
|
@ -3437,6 +3437,7 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||
('23'),
|
||||
('22'),
|
||||
('21'),
|
||||
('20231010194809'),
|
||||
('20231007141103'),
|
||||
('20230830115220'),
|
||||
('20230830115219'),
|
||||
|
|
|
@ -102,7 +102,7 @@ module Api
|
|||
second_relation = create(:relation_member, :member => node).relation
|
||||
_super_relation = create(:relation_member, :member => second_relation).relation
|
||||
# should combine multiple relation_member references into just one relation entry
|
||||
create(:relation_member, :member => node, :relation => relation_with_node, :sequence_id => 2)
|
||||
create(:relation_member, :member => node, :relation => relation_with_node)
|
||||
# should not include deleted relations
|
||||
deleted_relation = create(:relation, :deleted)
|
||||
create(:relation_member, :member => node, :relation => deleted_relation)
|
||||
|
@ -122,7 +122,7 @@ module Api
|
|||
second_relation = create(:relation_member, :member => way).relation
|
||||
_super_relation = create(:relation_member, :member => second_relation).relation
|
||||
# should combine multiple relation_member references into just one relation entry
|
||||
create(:relation_member, :member => way, :relation => relation_with_way, :sequence_id => 2)
|
||||
create(:relation_member, :member => way, :relation => relation_with_way)
|
||||
# should not include deleted relations
|
||||
deleted_relation = create(:relation, :deleted)
|
||||
create(:relation_member, :member => way, :relation => deleted_relation)
|
||||
|
@ -142,7 +142,7 @@ module Api
|
|||
second_relation = create(:relation_member, :member => relation).relation
|
||||
_super_relation = create(:relation_member, :member => second_relation).relation
|
||||
# should combine multiple relation_member references into just one relation entry
|
||||
create(:relation_member, :member => relation, :relation => relation_with_relation, :sequence_id => 2)
|
||||
create(:relation_member, :member => relation, :relation => relation_with_relation)
|
||||
# should not include deleted relations
|
||||
deleted_relation = create(:relation, :deleted)
|
||||
create(:relation_member, :member => relation, :relation => deleted_relation)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
FactoryBot.define do
|
||||
factory :old_relation_member do
|
||||
sequence(:sequence_id)
|
||||
member_role { "" }
|
||||
|
||||
old_relation
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
FactoryBot.define do
|
||||
factory :relation_member do
|
||||
sequence(:sequence_id)
|
||||
member_role { "" }
|
||||
|
||||
relation
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue