Django多个数据库:选择db,其中syncdb创建表

时间:2013-08-18 11:48:47

标签: django

我的代码可以访问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

1 个答案:

答案 0 :(得分:3)

知道了。必须使用db参数运行Syncdb。另外,也许(不确定是否重要)allow_syncdb应该返回False,而不是None,在其他情况下。

syncdb --database='db_1'
syncdb --database='db_1'