はじめに
- Alembic revision –autogenerate で変更がなくても空のrevisionファイルができるのを避ける
- python 3.11, alembic 1.7.7, sqlalchemy 2.0.30, sqlmodel 0.0.18
問題 疑問
変更がなくても空のrevisionファイルが生成されてしまう
まとめ 結果 解決方法
- 以下のような
process_revision_directives
を設定することで、差分がない場合は空のrevisionファイルを生成しない
def run_migrations_online():
:
def process_revision_directives(context, revision, directives):
if config.cmd_opts.autogenerate:
script = directives[0]
if script.upgrade_ops.is_empty():
directives[:] = []
print('No changes in schema detected.')
:
with connectable.connect() as connection:
context.configure(
connection=connection,
target_metadata=target_metadata,
include_schemas=True,
dialect_opts={"paramstyle": "named"},
include_name=include_name,
process_revision_directives=process_revision_directives,
)