我有一个数据库bonds.db
,我想将其作为替代数据库导入。我的默认数据库是database.sqlite3
。我的问题是我无法导入bonds.db
,除非我将其设置为我的默认数据库。
我通过输入python manage.py inspectdb --database=bonds
导入它,然后将输出粘贴到我创建的新应用的models.py
中。然后我输入python manage.py syncdb --database=bonds
。如果bond是默认数据库,这可以完美地工作,但如果bonds.db
不是默认数据库,Django会导入空数据库。
让我知道您需要哪些信息。
答案 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
的属性。