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
--- /dev/null
+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
--
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);
--
--
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);
--
('23'),
('22'),
('21'),
+('20231010194809'),
('20231007141103'),
('20230830115220'),
('20230830115219'),
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)
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)
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)