from alembic import op import sqlalchemy as sa revision = '0001_init' down_revision = None branch_labels = None depends_on = None def upgrade(): op.create_table( 'users', sa.Column('id', sa.Integer(), primary_key=True), sa.Column('email', sa.String(255), nullable=False, unique=True), sa.Column('password_hash', sa.String(255), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), ) op.create_table( 'api_keys', sa.Column('id', sa.Integer(), primary_key=True), sa.Column('key', sa.String(255), nullable=False, unique=True), sa.Column('revoked', sa.Boolean(), default=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('user_id', sa.Integer(), sa.ForeignKey('users.id', ondelete='CASCADE')) ) op.create_table( 'chat_history', sa.Column('id', sa.Integer(), primary_key=True), sa.Column('role', sa.String(20)), sa.Column('content', sa.Text(), nullable=False), sa.Column('created_at', sa.DateTime(), nullable=True), sa.Column('user_id', sa.Integer(), sa.ForeignKey('users.id', ondelete='CASCADE')) ) def downgrade(): op.drop_table('chat_history') op.drop_table('api_keys') op.drop_table('users')