是否alembic upgrade head
在事务内部运行,以便所有数据库更改成功或失败?如果不是,为什么要这样设计?
问问题
6146 次
2 回答
10
我的理解是,alembic 在支持它的数据库(如 Postgres)的事务中运行。如果您使用的数据库不支持此功能(咳MySQL咳),则无法使用此功能。
于 2014-05-21T23:31:16.173 回答
3
这是您可以在 中决定的事情,您可以在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()
于 2017-11-01T14:51:45.520 回答