Pet*_*ron 10 transactions database-migration alembic
是否alembic upgrade head在事务内运行以便所有数据库更改成功或失败?如果没有,为什么这样设计?
我的理解是,在支持Postgres的数据库的事务中运行Alembic。如果您使用的数据库不支持此功能(请使用cough MySQL cough),则不能使用此功能。
您可以在 中决定这一点env.py,您可以在其中自定义迁移的行为以适合您的设置。您可以从作为通用数据库示例提供的模板中了解如何确保升级发生在事务中: https: //github.com/zzzeek/alembic/blob/eaaafbca88f85f5432e04affe1f94cbf1ad06080/alembic/templates/generic/env.py# L64
def run_migrations_online():
# ...
with context.begin_transaction():
context.run_migrations()
Run Code Online (Sandbox Code Playgroud)