没有数据库的 Alembic 迁移

Ale*_*erg 5 sqlalchemy django-south alembic django-migrations

Alembic 是否可以在不访问数据库的情况下自动生成迁移?

例如,django/south 能够通过将 a 的当前版本Model与 .a 的先前快照Model进行比较来做到这一点。

Gri*_*cey 2

不,这是不可能的。zzzeek在相关issue中说道

虽然基于反射的比较有其问题,但它确实是当今一个非常基本的假设,特别是在 openstack 世界中,在单元测试套件中使用 autogen 功能来确保迁移的模式与模型匹配。我现在没有计划采用基于数据文件的方法,这对于人们似乎基本上都能接受的系统来说将是一项艰巨的任务。

尽管另一种方法可能是按需启动一个新数据库,运行从空到头的迁移,针对它生成,然后丢弃该数据库。