#python #django
#python #django
Вопрос:
У меня есть база bonds.db
данных, которую я хотел бы импортировать в качестве альтернативной базы данных. Моя база данных по умолчанию database.sqlite3
. Моя проблема в том, что я не могу импортировать bonds.db
, если не установлю ее в качестве базы данных по умолчанию.
Я импортирую его, набрав python manage.py inspectdb --database=bonds
текст, и вставляю выходные данные в models.py
новое приложение, которое я создал. Затем я печатаю python manage.py syncdb --database=bonds
. Это работает безупречно, если база данных по умолчанию — bonds, но Django импортирует пустую базу данных, если bonds.db
она не является базой данных по умолчанию.
Дайте мне знать, какая информация вам нужна.
Комментарии:
1. не могли бы вы поделиться своими настройками базы данных из
settings.py
файла?2. Спасибо за ответ, но я решил его. Обратитесь к моему ответу ниже.
3. Отлично, спасибо за добавление ответа.
Ответ №1:
Я нашел ответ, и он очевиден: маршрутизация базы данных. Вам нужно создать 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
.