diff --git a/priv/repo/migrations/20201120161229_fix_picture_deletion.exs b/priv/repo/migrations/20201120161229_fix_picture_deletion.exs
new file mode 100644
index 000000000..a0ad37da5
--- /dev/null
+++ b/priv/repo/migrations/20201120161229_fix_picture_deletion.exs
@@ -0,0 +1,31 @@
+defmodule Mobilizon.Storage.Repo.Migrations.FixPictureDeletion do
+  use Ecto.Migration
+
+  def up do
+    drop_if_exists(constraint(:posts, "posts_picture_id_fkey"))
+
+    alter table(:posts) do
+      modify(:picture_id, references(:pictures, on_delete: :nilify_all))
+    end
+
+    drop_if_exists(constraint(:events, "events_picture_id_fkey"))
+
+    alter table(:events) do
+      modify(:picture_id, references(:pictures, on_delete: :nilify_all))
+    end
+  end
+
+  def down do
+    drop_if_exists(constraint(:posts, "posts_picture_id_fkey"))
+
+    alter table(:posts) do
+      modify(:picture_id, references(:pictures, on_delete: :delete_all))
+    end
+
+    drop_if_exists(constraint(:events, "events_picture_id_fkey"))
+
+    alter table(:events) do
+      modify(:picture_id, references(:pictures, on_delete: :delete_all))
+    end
+  end
+end