@@ -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
@@ -108,6 +110,26 @@ defmodule Ecto.Integration.Migration do
108
110
add :name , :string
109
111
end
110
112
113
+ create table ( :composite_pk_composite_pk , primary_key: false ) do
114
+ add :b_1 , :integer
115
+ add :a_1 , references ( :composite_pk , column: :a , with: [ b_1: :b ] , type: :integer )
116
+ add :b_2 , :integer
117
+ add :a_2 , references ( :composite_pk , column: :a , with: [ b_2: :b ] , type: :integer )
118
+ end
119
+
120
+
121
+ alter table ( :posts ) do
122
+ modify :composite_a , references ( :composite_pk , column: :a , with: [ composite_b: :b ] , type: :integer )
123
+ end
124
+
125
+ create table ( :posts_composite_pk ) do
126
+ add :post_id , references ( :posts ) , primary_key: true
127
+ add :composite_a , references ( :composite_pk , column: :a , with: [ composite_b: :b ] , type: :integer ) , primary_key: true
128
+ add :composite_b , :integer , primary_key: true
129
+ end
130
+
131
+ create unique_index ( :posts_composite_pk , [ :post_id , :composite_a , :composite_b ] )
132
+
111
133
create table ( :corrupted_pk , primary_key: false ) do
112
134
add :a , :string
113
135
end
0 commit comments