Size: a a a

2019 February 07

AD

Anastasiya Dyachenko in pro.elixir
видимо не указали, хз почему
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Поддерживает то поддерживает, а в доке нету
источник

AK

Andy Krasnov in pro.elixir
:primary_key - when true, marks this field as the primary key
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Или я туплю
источник

AD

Anastasiya Dyachenko in pro.elixir
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Если это опция к add, тогда второй вариант не должен работать
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я думал может в сам references завезли...
источник

IB

Ilya Borovitinov in pro.elixir
Anastasiya Dyachenko
add :post_id, references(:posts), primary_key: true
Не, погоди, это делает колонку primary key, которая ссылывется на другую таблицу
источник

AD

Anastasiya Dyachenko in pro.elixir
Źmićer Rubinštejn
Если это опция к add, тогда второй вариант не должен работать
да не работает, извиняюсь за дезинформацию, надо поправить код :D
источник

AD

Anastasiya Dyachenko in pro.elixir
Ilya Borovitinov
Не, погоди, это делает колонку primary key, которая ссылывется на другую таблицу
я думала в этом вопрос, а как тебе надо?
источник

IB

Ilya Borovitinov in pro.elixir
Я говорю про ситуацию, где
def change do
 create table("test", primary_key: false) do
   add :id1, :bigint, primary_key: true
   add :id2, :bigint, primary_key: true
 end
end

А потом
def change do
 create table("other_test") do
   add :test_id, references("test") # не работает
 end
end
источник

AD

Anastasiya Dyachenko in pro.elixir
:column - The foreign key column, default is :id
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Чтобы был референс на composite pk, референс сам должен быть композитным
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Или я ошибаюсь?
источник

AK

Andy Krasnov in pro.elixir
Ilya Borovitinov
Я говорю про ситуацию, где
def change do
 create table("test", primary_key: false) do
   add :id1, :bigint, primary_key: true
   add :id2, :bigint, primary_key: true
 end
end

А потом
def change do
 create table("other_test") do
   add :test_id, references("test") # не работает
 end
end
если я правильно понял,
можно обойдись
add :id1, :bigint, primary_key: true
add :id2, :bigint

и
create index(:test, [:id1, :id2], unique: true)
источник

IB

Ilya Borovitinov in pro.elixir
Там две колонки и references пытается сразу исполнить SQL
FOREIGN KEY test_id REFERENCES test (id)

А должен
FOREIGN KEY (test_id1, test_id2) REFERENCES test (id1, id2)
источник

IB

Ilya Borovitinov in pro.elixir
Źmićer Rubinštejn
Чтобы был референс на composite pk, референс сам должен быть композитным
Да, о том и речь, что Ecto.Migration.references/2 в это не умеет
источник

AD

Anastasiya Dyachenko in pro.elixir
короче вопрос в том нужен ли композитный ключ, если есть референс
источник

IB

Ilya Borovitinov in pro.elixir
Andy Krasnov
если я правильно понял,
можно обойдись
add :id1, :bigint, primary_key: true
add :id2, :bigint

и
create index(:test, [:id1, :id2], unique: true)
Технически неправда. В твоем варианте (1, 2), (1, 3) нельзя вставить в таблицу
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Так а сделать референс двумя строчками не получается?
источник