025_add_widgets.py
1 from alembic import op 2 import sqlalchemy as sa 3 4 revision = '025' 5 down_revision = '024' 6 branch_labels = None 7 depends_on = None 8 9 def upgrade(): 10 try: 11 op.create_table( 12 'widgets', 13 sa.Column('id', sa.Integer(), primary_key=True, index=True), 14 sa.Column('project_id', sa.Integer(), sa.ForeignKey('projects.id'), nullable=False, index=True), 15 sa.Column('creator_id', sa.Integer(), sa.ForeignKey('users.id'), nullable=False), 16 sa.Column('key_hash', sa.String(64), nullable=False, unique=True, index=True), 17 sa.Column('encrypted_key', sa.String(4096), nullable=False), 18 sa.Column('key_prefix', sa.String(12), nullable=False), 19 sa.Column('name', sa.String(255), nullable=False, server_default='Chat Widget'), 20 sa.Column('config', sa.Text(), nullable=False), 21 sa.Column('allowed_domains', sa.Text(), nullable=False), 22 sa.Column('enabled', sa.Boolean(), nullable=False, server_default='1'), 23 sa.Column('created_at', sa.DateTime(), nullable=False), 24 sa.Column('updated_at', sa.DateTime(), nullable=False), 25 ) 26 except Exception as e: 27 print(f"Error creating widgets table: {e}") 28 29 def downgrade(): 30 try: 31 op.drop_table('widgets') 32 except Exception as e: 33 print(f"Error dropping widgets table: {e}")