我的代码可以访问3个数据库。 syncdb必须在两个数据库中创建所有模型表。我不确定该怎么做。以下不起作用。
DATABASES = {
'default': {}, # empty. default is required
'db_1': { # want tables created in this
...
},
'db_2': { # want tables created in this
...
},
'other': { # do NOT want tables created in this
...
},
}
路由器:(一个单独的路由器处理授权表)
import random
class OtherRouter(object):
def db_for_read(self, model, **hints):
return random.choice(['db_1', 'db_2'])
def db_for_write(self, model, **hints):
return "db_1"
def allow_relation(self, obj1, obj2, **hints):
return True
def allow_syncdb(self, db, model):
db_list = ('db_1', 'db_2')
if db in db_list:
return True
return None
答案 0 :(得分:3)
知道了。必须使用db参数运行Syncdb。另外,也许(不确定是否重要)allow_syncdb应该返回False,而不是None,在其他情况下。
syncdb --database='db_1'
syncdb --database='db_1'