我已经设置了一个数据库路由器,使用以下命令将不同的应用程序和不同的模型定向到不同的数据库db_for_read
and db_for_write
路由器方法。
这非常有效,除了./manage.py syncdb
不尊重这些路由器设置。
When I syncdb
我的模型,它们都是在默认数据库中创建的。
数据库路由器仅提供allow_syncdb
方法,但是没有sync_to
方法。有没有办法告诉syncdb
命令在哪里创建新表?
Note:我无法使用--database
功能,因为有时某些模型应用程序会转到与应用程序其余部分不同的数据库。
当你编写路由器时,请确保你已经编写了allow_syncdb()方法。它需要数据库和模型。当你跑步时manage.py syncdb
你本质上是在设置--database=default
。如果您不希望模型同步到默认数据库,那么您的allow_syncdb()方法应该在以下条件下返回False:db==default and model._meta.app_label==myapp
.
您需要使用以下命令运行syncdb--database=your_other_db
获得的选项myapp
进入该数据库。但请确保在这种情况下,allow_syncdb() 仅在以下情况下返回 Truedb==your_other_db and model._meta.app_label==myapp
.
那有意义吗?基本上你必须运行manage.py syncdb
方法两次,每个数据库一次。您不能仅运行一次并让它更新两个数据库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)