Django - 无法导入外部数据库,除非它们是默认的

时间:2014-06-24 09:26:13

标签: python django

我有一个数据库bonds.db,我想将其作为替代数据库导入。我的默认数据库是database.sqlite3。我的问题是我无法导入bonds.db,除非我将其设置为我的默认数据库。

我通过输入python manage.py inspectdb --database=bonds导入它,然后将输出粘贴到我创建的新应用的models.py中。然后我输入python manage.py syncdb --database=bonds。如果bond是默认数据库,这可以完美地工作,但如果bonds.db不是默认数据库,Django会导入空数据库。

让我知道您需要哪些信息。

1 个答案:

答案 0 :(得分:0)

我找到了答案,这显而易见:数据库路由。您需要创建routers.py文件并将其添加到settings.py

DATABASE_ROUTERS = ['myapp1.routers.name-of-your-routers.py-class',
                    'myapp2.routers.name-of-your-routers.py-class']
DATABASE_APPS_MAPPING = {'myapp1': 'mydb1', 
                         'myapp2': 'mydb2'}

Djangosnippets有routers.py个文件:https://djangosnippets.org/snippets/2687/

您需要在in_db = 'desired-db'的每个班级的Meta班级中添加名为models.py的属性。