from sqlalchemy import Table, MetaData, Column, Integer, Index meta = MetaData() def _get_table(meta): meta.reflect() AnalyzeTask = Table("analyze_tasks", meta, autoload=True, autoload_with=meta.bind) return AnalyzeTask def _get_column(): return Column("status", Integer, nullable=False, default=0, server_default="2") def _get_indices(meta): meta.reflect() AnalyzeTask = Table("analyze_tasks", meta, autoload=True, autoload_with=meta.bind) return [ Index("analyze_tasks_status_idx", AnalyzeTask.c.status, unique=False) ] def upgrade(migrate_engine): meta.bind = migrate_engine table = _get_table(meta) col = _get_column() col.create(table, populate_default=True) for idx in _get_indices(meta): idx.create() def downgrade(migrate_engine): meta.bind = migrate_engine table = _get_table(meta) table.c.status.drop() for idx in _get_indices(meta): idx.drop()