mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
57 lines
1.4 KiB
Python
57 lines
1.4 KiB
Python
"""empty message
|
|
|
|
Revision ID: 5fde26e1904d
|
|
Revises: 58d8aae621e6
|
|
Create Date: 2023-04-28 13:04:22.142011
|
|
|
|
"""
|
|
import sqlalchemy as sa
|
|
from alembic import op
|
|
from sqlalchemy.sql.elements import conv
|
|
from sqlalchemy.sql.naming import ConventionDict, _get_convention
|
|
|
|
from project import dbtypes
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = "5fde26e1904d"
|
|
down_revision = "58d8aae621e6"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade():
|
|
conn = op.get_bind()
|
|
ctx = op.get_context()
|
|
existing_metadata = sa.schema.MetaData()
|
|
existing_metadata.reflect(bind=conn)
|
|
target_metadata = ctx.opts["target_metadata"]
|
|
|
|
for table_name, table in existing_metadata.tables.items():
|
|
if table_name not in target_metadata.tables:
|
|
continue
|
|
|
|
for c in table.constraints:
|
|
existing_name = c.name
|
|
if not existing_name:
|
|
continue
|
|
|
|
convention = _get_convention(target_metadata.naming_convention, type(c))
|
|
|
|
if not convention:
|
|
continue
|
|
|
|
target_c_name = conv(
|
|
convention % ConventionDict(c, table, target_metadata.naming_convention)
|
|
)
|
|
if not target_c_name:
|
|
continue
|
|
|
|
if existing_name != target_c_name:
|
|
op.execute(
|
|
f"ALTER TABLE public.{table_name} RENAME CONSTRAINT {existing_name} to {target_c_name};"
|
|
)
|
|
|
|
|
|
def downgrade():
|
|
pass
|