# Alembic migration script template """empty message Revision ID: 0d767ad92dd7 Revises: 20251021_add_user_and_magic_link Create Date: 2025-10-24 23:36:41.985357 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision = '0d767ad92dd7' down_revision = '20251021_add_user_and_magic_link' branch_labels = None depends_on = None def upgrade() -> None: op.create_table( "product_likes", sa.Column( "user_id", sa.Integer(), sa.ForeignKey( "users.id", ondelete="CASCADE", ), primary_key=True, nullable=False, ), sa.Column( "product_slug", sa.String(length=255), primary_key=True, nullable=False, ), sa.Column( "created_at", sa.DateTime(timezone=True), nullable=False, server_default=sa.func.now(), ), ) # If you want an index to quickly fetch "all likes for this user": op.create_index( "ix_product_likes_user_id", "product_likes", ["user_id"], unique=False, ) # If you want an index to quickly fetch "who liked this product": op.create_index( "ix_product_likes_product_slug", "product_likes", ["product_slug"], unique=False, ) def downgrade() -> None: op.drop_index("ix_product_likes_product_slug", table_name="product_likes") op.drop_index("ix_product_likes_user_id", table_name="product_likes") op.drop_table("product_likes")