Files
shveitechbot/alembic/versions/ad794cb94d9c_initial_migration.py
2026-02-01 12:29:33 +07:00

102 lines
3.0 KiB
Python

"""Initial Migration
Revision ID: ad794cb94d9c
Revises:
Create Date: 2026-01-30 21:38:15.534474
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision: str = "ad794cb94d9c"
down_revision: Union[str, Sequence[str], None] = None
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
"""Upgrade schema."""
# ### commands auto generated by Alembic - please adjust! ###
op.create_table(
"categories",
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
sa.Column("name", sa.Text(), nullable=True),
sa.Column("parent_id", sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(
["parent_id"],
["categories.id"],
),
sa.PrimaryKeyConstraint("id"),
)
op.create_table(
"orders",
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
sa.Column("customer", sa.BigInteger(), nullable=True),
sa.Column(
"status",
postgresql.ENUM(
"CREATED",
"PAID",
"IN_PROGRESS",
"CANCELLED",
"DRAFT",
name="order_status",
),
nullable=False,
),
sa.PrimaryKeyConstraint("id"),
)
op.create_table(
"products",
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
sa.Column("category_id", sa.Integer(), nullable=True),
sa.Column("name", sa.Text(), nullable=True),
sa.Column("description", sa.Text(), nullable=True),
sa.Column("search_vector", postgresql.TSVECTOR(), nullable=False),
sa.ForeignKeyConstraint(
["category_id"],
["categories.id"],
),
sa.PrimaryKeyConstraint("id"),
)
op.create_index(
"idx_products_search",
"products",
["search_vector"],
unique=False,
postgresql_using="gin",
)
op.create_table(
"order_items",
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
sa.Column("order_id", sa.Integer(), nullable=False),
sa.Column("product_id", sa.Integer(), nullable=False),
sa.Column("quantity", sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(
["order_id"],
["orders.id"],
),
sa.ForeignKeyConstraint(
["product_id"],
["products.id"],
),
sa.PrimaryKeyConstraint("id"),
)
# ### end Alembic commands ###
def downgrade() -> None:
"""Downgrade schema."""
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table("order_items")
op.drop_index("idx_products_search", table_name="products", postgresql_using="gin")
op.drop_table("products")
op.drop_table("orders")
op.drop_table("categories")
# ### end Alembic commands ###