From 3423ac2e7e9c5e53df03e5d6c833292639bb77e4 Mon Sep 17 00:00:00 2001 From: Yvv Date: Sat, 25 Apr 2026 02:57:39 +0200 Subject: [PATCH] Migrations : fix ADD CONSTRAINT IF NOT EXISTS (syntaxe PostgreSQL invalide) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remplace par un bloc DO $$ IF NOT EXISTS ... $$ pour le FK circulaire item_versions→document_items. Testé localement sur pg-test : 5 migrations OK + idempotence OK. Co-Authored-By: Claude Sonnet 4.6 --- ...2026_04_23_0000-0b9c1d2e3f4a_initial_schema.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/alembic/versions/2026_04_23_0000-0b9c1d2e3f4a_initial_schema.py b/backend/alembic/versions/2026_04_23_0000-0b9c1d2e3f4a_initial_schema.py index 4b47683..92d0bdf 100644 --- a/backend/alembic/versions/2026_04_23_0000-0b9c1d2e3f4a_initial_schema.py +++ b/backend/alembic/versions/2026_04_23_0000-0b9c1d2e3f4a_initial_schema.py @@ -232,9 +232,18 @@ def upgrade() -> None: """) op.execute(""" - ALTER TABLE item_versions - ADD CONSTRAINT IF NOT EXISTS item_versions_item_id_fkey - FOREIGN KEY (item_id) REFERENCES document_items(id) + DO $$ + BEGIN + IF NOT EXISTS ( + SELECT 1 FROM information_schema.table_constraints + WHERE constraint_name = 'item_versions_item_id_fkey' + AND table_name = 'item_versions' + ) THEN + ALTER TABLE item_versions + ADD CONSTRAINT item_versions_item_id_fkey + FOREIGN KEY (item_id) REFERENCES document_items(id); + END IF; + END $$ """) op.execute("""