Arreglo de equivalencias
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
"""isolate equivalency items
|
||||
|
||||
Revision ID: f1a2b3c4d5e6
|
||||
Revises: e4f5a6b7c8d9
|
||||
Create Date: 2026-05-12 17:18:00.000000
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
revision: str = "f1a2b3c4d5e6"
|
||||
down_revision: Union[str, None] = "e4f5a6b7c8d9"
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# 1. Add equivalency_id column
|
||||
op.add_column(
|
||||
'equivalency_items',
|
||||
sa.Column(
|
||||
'equivalency_id',
|
||||
sa.Integer(),
|
||||
sa.ForeignKey('a76.equivalencies.id', ondelete='CASCADE'),
|
||||
nullable=True
|
||||
),
|
||||
schema='a76'
|
||||
)
|
||||
|
||||
# 2. Drop old unique constraint
|
||||
# Note: In some DBs we might need to specify the type, but for Postgres 'unique' or 'foreignkey' works.
|
||||
op.drop_constraint('uq_equivalency_item_fields', 'equivalency_items', schema='a76', type_='unique')
|
||||
|
||||
# 3. Create new unique constraint including equivalency_id
|
||||
op.create_unique_constraint(
|
||||
'uq_equivalency_item_fields',
|
||||
'equivalency_items',
|
||||
['equivalency_id', 'original_field', 'external_field', 'tenant_id', 'company_id'],
|
||||
schema='a76'
|
||||
)
|
||||
|
||||
# 4. Increase identifier length in equivalencies table
|
||||
op.alter_column(
|
||||
'equivalencies',
|
||||
'identifier',
|
||||
type_=sa.String(50),
|
||||
existing_type=sa.String(10),
|
||||
schema='a76'
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# 1. Drop new unique constraint
|
||||
op.drop_constraint('uq_equivalency_item_fields', 'equivalency_items', schema='a76', type_='unique')
|
||||
|
||||
# 2. Re-create old unique constraint
|
||||
op.create_unique_constraint(
|
||||
'uq_equivalency_item_fields',
|
||||
'equivalency_items',
|
||||
['original_field', 'external_field', 'tenant_id', 'company_id'],
|
||||
schema='a76'
|
||||
)
|
||||
|
||||
# 4. Revert identifier length in equivalencies table
|
||||
op.alter_column(
|
||||
'equivalencies',
|
||||
'identifier',
|
||||
type_=sa.String(10),
|
||||
existing_type=sa.String(50),
|
||||
schema='a76'
|
||||
)
|
||||
# 5. Drop equivalency_id column
|
||||
op.drop_column('equivalency_items', 'equivalency_id', schema='a76')
|
||||
Reference in New Issue
Block a user