| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import sqlalchemy as sa
- from alembic import op
- from sqlalchemy.dialects import mysql
- revision = "0001_identity_foundation"
- down_revision = None
- branch_labels = None
- depends_on = None
- def upgrade():
- op.create_table(
- "tenants",
- sa.Column("id", mysql.BINARY(16), nullable=False),
- sa.Column("name", sa.String(128), nullable=False),
- sa.Column("status", sa.String(32), nullable=False, server_default="ACTIVE"),
- sa.Column("version", mysql.BIGINT(unsigned=True), nullable=False, server_default="1"),
- sa.Column(
- "created_at",
- mysql.DATETIME(fsp=6),
- nullable=False,
- server_default=sa.text("CURRENT_TIMESTAMP(6)"),
- ),
- sa.Column(
- "updated_at",
- mysql.DATETIME(fsp=6),
- nullable=False,
- server_default=sa.text("CURRENT_TIMESTAMP(6)"),
- ),
- sa.PrimaryKeyConstraint("id", name="pk_tenants"),
- sa.CheckConstraint("status IN ('ACTIVE', 'SUSPENDED')", name=op.f("ck_tenants_status")),
- mysql_charset="utf8mb4",
- mysql_collate="utf8mb4_0900_ai_ci",
- )
- op.create_table(
- "stores",
- sa.Column("id", mysql.BINARY(16), nullable=False),
- sa.Column("tenant_id", mysql.BINARY(16), nullable=False),
- sa.Column("name", sa.String(128), nullable=False),
- sa.Column("status", sa.String(32), nullable=False, server_default="ACTIVE"),
- sa.Column("version", mysql.BIGINT(unsigned=True), nullable=False, server_default="1"),
- sa.Column(
- "created_at",
- mysql.DATETIME(fsp=6),
- nullable=False,
- server_default=sa.text("CURRENT_TIMESTAMP(6)"),
- ),
- sa.Column(
- "updated_at",
- mysql.DATETIME(fsp=6),
- nullable=False,
- server_default=sa.text("CURRENT_TIMESTAMP(6)"),
- ),
- sa.PrimaryKeyConstraint("id", name="pk_stores"),
- sa.UniqueConstraint("tenant_id", "id", name="uq_stores_tenant_id_id"),
- sa.ForeignKeyConstraint(["tenant_id"], ["tenants.id"], name="fk_stores_tenant_id_tenants"),
- sa.CheckConstraint("status IN ('ACTIVE', 'SUSPENDED')", name=op.f("ck_stores_status")),
- mysql_charset="utf8mb4",
- mysql_collate="utf8mb4_0900_ai_ci",
- )
- def downgrade():
- op.drop_table("stores")
- op.drop_table("tenants")
|