@@ -27,6 +27,8 @@ defmodule Ecto.Integration.Migration do
27
27
add :intensity , :float
28
28
add :author_id , :integer
29
29
add :posted , :date
30
+ add :composite_a , :integer
31
+ add :composite_b , :integer
30
32
timestamps ( null: true )
31
33
end
32
34
@@ -113,6 +115,26 @@ defmodule Ecto.Integration.Migration do
113
115
add :name , :string
114
116
end
115
117
118
+ create table ( :composite_pk_composite_pk , primary_key: false ) do
119
+ add :b_1 , :integer
120
+ add :a_1 , references ( :composite_pk , column: :a , with: [ b_1: :b ] , type: :integer )
121
+ add :b_2 , :integer
122
+ add :a_2 , references ( :composite_pk , column: :a , with: [ b_2: :b ] , type: :integer )
123
+ end
124
+
125
+
126
+ alter table ( :posts ) do
127
+ modify :composite_a , references ( :composite_pk , column: :a , with: [ composite_b: :b ] , type: :integer )
128
+ end
129
+
130
+ create table ( :posts_composite_pk ) do
131
+ add :post_id , references ( :posts ) , primary_key: true
132
+ add :composite_a , references ( :composite_pk , column: :a , with: [ composite_b: :b ] , type: :integer ) , primary_key: true
133
+ add :composite_b , :integer , primary_key: true
134
+ end
135
+
136
+ create unique_index ( :posts_composite_pk , [ :post_id , :composite_a , :composite_b ] )
137
+
116
138
create table ( :corrupted_pk , primary_key: false ) do
117
139
add :a , :string
118
140
end
0 commit comments