Как установить значение NULL при удалении строки справочной таблицы, Ecto.Migration reference / 2 - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть две таблицы devices и devices_type, я хочу установить значение NULL в devices.type_id при удалении исходной строки из devices_types.

#MyApp.Repo.Migrations.Devices
create table(:devices) do
    ...
    add :type_id, references(:device_type, on_delete: :nothing)
    ...
end
#MyApp.Repo.Migrations.DeviceType
create table(:device_type) do
    add :name, :string, comment: "Device type name"
end

1 Ответ

0 голосов
/ 11 февраля 2020

Ссылка на документацию ссылки (таблица, опции \ []) , я использую on_delete: :nilify_all опция

#MyApp.Repo.Migrations.Devices
create table(:devices) do
    ...
    add :type_id, references(:device_type, on_delete: :nilify_all)
    ...
end

см. Также, проверьте опции on_delete :
https://hexdocs.pm/ecto/Ecto.Schema.html#has_many / 3

...