"""Invite codes, for a site that is not open to register Revision ID: d4e5f6a7b8c9 Revises: c3d4e5f6a7b8 """ import sqlalchemy as sa from alembic import op revision = "d4e5f6a7b8c9" down_revision = "c3d4e5f6a7b8" branch_labels = None depends_on = None def upgrade() -> None: if "invite_codes" in sa.inspect(op.get_bind()).get_table_names(): return op.create_table( "invite_codes", sa.Column("id", sa.Integer(), primary_key=True, index=True), sa.Column("code", sa.String(length=32), nullable=False, unique=True), sa.Column("note", sa.String(length=200), nullable=True), sa.Column("created_by", sa.Integer(), sa.ForeignKey("users.id", ondelete="SET NULL"), nullable=True), sa.Column("created_at", sa.DateTime(), server_default=sa.func.now()), sa.Column("used_by", sa.Integer(), sa.ForeignKey("users.id", ondelete="SET NULL"), nullable=True), sa.Column("used_at", sa.DateTime(), nullable=True), sa.Column("revoked_at", sa.DateTime(), nullable=True), ) op.create_index("ix_invite_codes_code", "invite_codes", ["code"], unique=True) def downgrade() -> None: if "invite_codes" in sa.inspect(op.get_bind()).get_table_names(): op.drop_table("invite_codes")