from alembic import op from sqlalchemy import engine_from_config from sqlalchemy.engine import reflection def _table_has_column(table, column): config = op.get_context().config engine = engine_from_config( config.get_section(config.config_ini_section), prefix='sqlalchemy.') insp = reflection.Inspector.from_engine(engine) has_column = False for col in insp.get_columns(table): if column != col['name']: continue has_column = True return has_column def _has_table(table_name): config = op.get_context().config engine = engine_from_config( config.get_section(config.config_ini_section), prefix="sqlalchemy." ) inspector = reflection.Inspector.from_engine(engine) tables = inspector.get_table_names() return table_name in tables