Возможно ли иметь отдельные базы данных SQLite в рамках одного проекта Django?

StackOverflow https://stackoverflow.com/questions/168218

  •  03-07-2019
  •  | 
  •  

Вопрос

Я думал о создании отдельной базы данных SQLite для определенных приложений в проекте Django.
Однако я не хотел использовать прямой доступ к SQLite, если это возможно. ORM-доступ в стиле Django к этой базе данных был бы идеальным.
Это возможно?

Спасибо.

Это было полезно?

Другие советы

Да - низкоуровневый API для этого уже есть, в данный момент ему просто не хватает удобного высокоуровневого API. Эти цитаты принадлежат Джеймсу Беннетту (менеджеру по выпуску Django) по программированию reddit :

  

Он был там - в чрезвычайно низкоуровневом API для тех, кто смотрит на кодовую базу - уже несколько месяцев (каждый QuerySet поддерживается Query , который в свою очередь принимает соединение с БД в качестве аргумента). Для него не существует высокоуровневого документированного API, но я знаю людей, которые уже делают и занимаются такими вещами, как сценарии с несколькими БД / sharding.

     

... это не обязательно что-то, что требует большой переписки; метод __ init __ () QuerySet принимает аргумент ключевого слова query , который должен быть экземпляром django.db.models.sql .Query . Метод __ init __ () Query , в свою очередь, принимает аргумент ключевого слова connection , который должен быть экземпляром (специфичного для бэкэнда подкласса). для вашей базы данных) django.db.backends.BaseDatabaseWrapper .

     

Оттуда это довольно легко; вы можете, например, переопределить get_query_set () в менеджере, чтобы всегда возвращать QuerySet , используя нужное соединение, или настроить такие вещи, как логика разделения, чтобы выяснить, какая БД использовать на основе параметров входящего запроса и т. д. и т. д.

В настоящее время нет - каждый проект использует одну базу данных, и каждое приложение должно существовать в ней. Если вы хотите иметь базу данных для конкретного приложения, вы не можете сделать это с помощью Django ORM. См. Вики-страницу Django на поддержке нескольких баз данных .

Это пока невозможно, но в вики есть некоторые разговоры об этом, Поддержка нескольких баз данных в Джанго . Он также был затронут во время основного доклада о будущем Django на DjangoCon 2008 и был сделан одна из приоритетных задач.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top