South 是否尊重数据库路由器?我设置路由器将某些应用程序路由到一个数据库,并将所有其他应用程序路由到默认数据库。我什至确保 South migrationhistory 表在两个数据库中。但是我不能让 South 只在适当的数据库中应用迁移。即,即使我使用 --database 向南运行,它也会将所有迁移应用到我指定的数据库,而不仅仅是从应用程序迁移到该数据库。
帮助!谢谢。
South 是否尊重数据库路由器?我设置路由器将某些应用程序路由到一个数据库,并将所有其他应用程序路由到默认数据库。我什至确保 South migrationhistory 表在两个数据库中。但是我不能让 South 只在适当的数据库中应用迁移。即,即使我使用 --database 向南运行,它也会将所有迁移应用到我指定的数据库,而不仅仅是从应用程序迁移到该数据库。
帮助!谢谢。
问题是 Django 的 DB 路由器基于 Apps/Models 将查询路由到数据库,而 south 基于 Tables。South 真的不知道表对应于哪个模型(尤其是在历史上)。Andrew Godwin目前正在为 django 开发一个 contrib 模块,该模块将取代 south 并修复许多此类问题,但现在您必须使用 hacky 方法 ( --database
, .using()
) 手动完成大量工作。
为了自动化,我建议让所有表都存在于所有数据库中,并针对所有这些数据库运行所有迁移。只是为了确保所有约束在所有数据库中始终如一地工作。