Flask と SQLAlchemy で Web アプリをつくるとき きちんとテストを書きたい→Application Factories Pattern を使う DB もきちんとバージョン管理したい→Alembic を使う という前提で、さらに Alembic の version ファイルと SQLAlchemy の declarative なモデルに同じようなテーブル定義を書きたくない。つまり version ファイルに def upgrade(): op.create_table( 'users, sa.Column('id', sa.Integer, primary_key=True), sa.Column('username', sa.String, nullable=False) )