From 096be5bd651445058a802ae3293665ab0c56e6f1 Mon Sep 17 00:00:00 2001 From: Louis Bassagal <91676343+LouisBassagal@users.noreply.github.com> Date: Tue, 3 Feb 2026 08:55:06 +0100 Subject: [PATCH 1/2] [ADD] Add cascade delete with plugin_manager when a plugin or a visual is deleted --- ...isual_cascade_delete_in_plugin_manager.exs | 18 +++++++++++++ ...lugin_cascade_delete_in_plugin_manager.exs | 27 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 priv/repo/migrations/20260202170246_change_visual_cascade_delete_in_plugin_manager.exs create mode 100644 priv/repo/migrations/20260202172644_change_plugin_cascade_delete_in_plugin_manager.exs diff --git a/priv/repo/migrations/20260202170246_change_visual_cascade_delete_in_plugin_manager.exs b/priv/repo/migrations/20260202170246_change_visual_cascade_delete_in_plugin_manager.exs new file mode 100644 index 0000000..e9b064c --- /dev/null +++ b/priv/repo/migrations/20260202170246_change_visual_cascade_delete_in_plugin_manager.exs @@ -0,0 +1,18 @@ +defmodule Back.Repo.Migrations.ChangeVisualCascadeDeleteInPluginManager do + use Ecto.Migration + + def up do + drop constraint(:plugin_manager, "plugin_manager_visual_fkey") + alter table(:plugin_manager) do + modify :visual, references(:visuals, on_delete: :delete_all, type: :binary_id) + end + end + + def down do + drop constraint(:plugin_manager, "plugin_manager_visual_fkey") + + alter table(:plugin_manager) do + modify :visual, references(:visuals, on_delete: :restrict, type: :binary_id) + end + end +end diff --git a/priv/repo/migrations/20260202172644_change_plugin_cascade_delete_in_plugin_manager.exs b/priv/repo/migrations/20260202172644_change_plugin_cascade_delete_in_plugin_manager.exs new file mode 100644 index 0000000..568df71 --- /dev/null +++ b/priv/repo/migrations/20260202172644_change_plugin_cascade_delete_in_plugin_manager.exs @@ -0,0 +1,27 @@ +defmodule Back.Repo.Migrations.ChangePluginCascadeDeleteInPluginManager do + use Ecto.Migration + + def up do + execute "ALTER TABLE plugin_manager DROP CONSTRAINT IF EXISTS plugin_manager_automaton_fkey" + + execute """ + ALTER TABLE plugin_manager + ADD CONSTRAINT plugin_manager_automaton_fkey + FOREIGN KEY (automaton) + REFERENCES automaton(automaton_id) + ON DELETE CASCADE + """ + end + + def down do + execute "ALTER TABLE plugin_manager DROP CONSTRAINT IF EXISTS plugin_manager_automaton_fkey" + + execute """ + ALTER TABLE plugin_manager + ADD CONSTRAINT plugin_manager_automaton_fkey + FOREIGN KEY (automaton) + REFERENCES automaton(automaton_id) + ON DELETE NO ACTION + """ + end +end From b5db3d59d0306fdf3ff89acc4f8391f22523c13f Mon Sep 17 00:00:00 2001 From: Louis Bassagal <91676343+LouisBassagal@users.noreply.github.com> Date: Tue, 3 Feb 2026 09:36:48 +0100 Subject: [PATCH 2/2] [FIX] Fix format error --- ...0202170246_change_visual_cascade_delete_in_plugin_manager.exs | 1 + 1 file changed, 1 insertion(+) diff --git a/priv/repo/migrations/20260202170246_change_visual_cascade_delete_in_plugin_manager.exs b/priv/repo/migrations/20260202170246_change_visual_cascade_delete_in_plugin_manager.exs index e9b064c..b92fab8 100644 --- a/priv/repo/migrations/20260202170246_change_visual_cascade_delete_in_plugin_manager.exs +++ b/priv/repo/migrations/20260202170246_change_visual_cascade_delete_in_plugin_manager.exs @@ -3,6 +3,7 @@ defmodule Back.Repo.Migrations.ChangeVisualCascadeDeleteInPluginManager do def up do drop constraint(:plugin_manager, "plugin_manager_visual_fkey") + alter table(:plugin_manager) do modify :visual, references(:visuals, on_delete: :delete_all, type: :binary_id) end