fix(ARCH-F-2): migration 0127 — drop tasks_contact_id_fkey (contact_id derived from entity_id, FK redundant)
This commit is contained in:
@@ -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",
|
||||
)
|
||||
Reference in New Issue
Block a user