fix(ARCH-F-2): migration 0127 — drop tasks_contact_id_fkey (contact_id derived from entity_id, FK redundant)

This commit is contained in:
Agent Zero
2026-08-19 00:06:05 +02:00
parent 6b9beec8cf
commit 44ec84136e
@@ -0,0 +1,36 @@
"""Drop tasks_contact_id_fkey — contact_id is now derived from entity_id (ARCH-F-2).
The tasks table has both a contact_id FK column (referencing contacts) and
polymorphic entity_type/entity_id columns. The code now derives contact_id
from entity_id when entity_type='contact', and stores NULL in the FK column.
The FK constraint is redundant and prevents creating tasks with arbitrary
entity references. This migration drops the FK constraint but keeps the column
for backward compatibility.
Revision ID: 0127
Revises: 0126
"""
from alembic import op
revision = "0127"
down_revision = "0126"
branch_labels = None
depends_on = None
def upgrade() -> None:
# Drop the FK constraint on tasks.contact_id
op.drop_constraint("tasks_contact_id_fkey", "tasks", type_="foreignkey")
def downgrade() -> None:
# Re-create the FK constraint (best-effort — may fail if orphaned rows exist)
op.create_foreign_key(
"tasks_contact_id_fkey",
"tasks",
"contacts",
["contact_id"],
["id"],
ondelete="SET NULL",
)