【问题标题】:Django South migration to different databasesDjango South 迁移到不同的数据库
【发布时间】:2012-07-26 06:01:35
【问题描述】:

South 是否尊重数据库路由器?我设置路由器将某些应用程序路由到一个数据库,并将所有其他应用程序路由到默认数据库。我什至确保 South migrationhistory 表在两个数据库中。但是我不能让 South 只在适当的数据库中应用迁移。 IE。即使我使用 --database 向南运行,它也会将所有迁移应用到我指定的数据库,而不仅仅是从应用程序迁移到该数据库。

帮助!谢谢。

【问题讨论】:

  • 顺便说一句,“manage.py migrate appname --database dbname”不起作用吗?
  • manage.py migrate app --database db 工作,但你不能做 manage.migrate --database db 并有正确的迁移到正确的数据库。
  • 链接 south.aeracode.org/ticket/370 不再有效,因为 South 已被弃用以支持 Django 自己的迁移。

标签: django django-south


【解决方案1】:

“South 是否尊重数据库路由器?”不,它没有。

问题在于 Django 的 DB 路由器基于 Apps/Models 将查询路由到数据库,而 south 基于 Tables。 South 真的不知道表对应于哪个模型(尤其是在历史上)。 Andrew Godwin 目前是 working on a contrib module to django,它将取代 south 并解决许多此类问题,但现在您必须使用 hacky 方法(--database.using())手动完成大量此类工作。

为了自动化,我建议让所有表都存在于所有数据库中,并针对所有这些数据库运行所有迁移。只是为了确保所有约束在所有数据库中一致地起作用。

【讨论】:

  • 如果此答案对您有所帮助或通知您,您会考虑将其标记为正确吗?
猜你喜欢
  • 2014-08-11
  • 2014-01-12
  • 2023-03-17
  • 2013-07-10
  • 2012-04-10
  • 2012-06-14
  • 2014-01-29
  • 1970-01-01
  • 2012-08-06
相关资源
最近更新 更多