Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Подключение нескольких баз к проекту на Django. [RSS Feed]

#1 Окт. 14, 2008 03:30:43

PavelZ
От:
Зарегистрирован: 2008-09-07
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение нескольких баз к проекту на Django.

Возникла дилемма, в моём проекте необходима работа с несколькими базами, более того по мере развития количество баз будет увеличиваться. Цель увеличить производительность системы за счёт использования удалённых баз. Не могу найти примеров, как подключить несколько баз к одному проекту или проще всего использовать несколько проектов и как то связать их между собой?



Отредактировано (Окт. 14, 2008 03:34:41)

Офлайн

#2 Окт. 14, 2008 09:36:11

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Подключение нескольких баз к проекту на Django.

Если имеются ввиду репликации, то есть очень хорошее решение - mysql_replicated

Если базы совсем разные, то их использовать в рамках одного проекта не получится. Тогда вариант, действительно, создать несколько проектов сервисов, которые предоставляют данные другим.

Или попробовать решить проблему ещё на уровне СУБД,



Офлайн

#3 Янв. 17, 2011 21:11:26

chkur
От:
Зарегистрирован: 2010-01-07
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение нескольких баз к проекту на Django.

Александр Кошелев
Если базы совсем разные, то их использовать в рамках одного проекта не получится. Тогда вариант, действительно, создать несколько проектов сервисов, которые предоставляют данные другим.

Или попробовать решить проблему ещё на уровне СУБД,
Прошу прощения за откапывание темы. Нужно построить несколько проектов/приложений на предприятии с возможностью последующего быстрого их безболезненного разделения. Общего между ними - таблицы справочников. БД - PostgreSQL.
Варианты:
1. Одна БД, один проект, много приложений - выдумывать ничего не нужно, потом придется “резать” проект и базу.
1а. Одна БД, несколько проектов - придется “резать” базу.
2. Несколько БД, несколько проектов. Один из проектов содержит справочники и выдает необходимые данные по запросу через JSON или xml.
3. Несколько БД, несколько проектов. Справочники предоставляются в другие базы через удаленное представление (dblink+view). В теории должно работать, но пока не пробовал.

Что посоветуете?



Офлайн

#4 Янв. 17, 2011 22:58:41

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Подключение нескольких баз к проекту на Django.

Один проект, много приложений (если они действительно нужны), несколько баз. При необходимости приложения легко вынести в отдельные проекты.

Офлайн

#5 Янв. 18, 2011 11:54:35

chkur
От:
Зарегистрирован: 2010-01-07
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение нескольких баз к проекту на Django.

Ferroman
Один проект, много приложений (если они действительно нужны), несколько баз.
Из более-менее вдумчивого чтения вот этого: http://docs.djangoproject.com/en/1.2/topics/db/multi-db/ - я понял, что мульти-db подключения возможны к базам одинаковой структуры. Я неправильно понял?
Или предлагаете делать несколько баз одной структуры и в разных приложениях заполнять различные таблицы? Как быть в этом случае со справочниками? Дублировать во всех базах или делать представления? (Примечание - справочники для всех приложений readonly).
В общем, пока не понял предложения…



Офлайн

#6 Янв. 18, 2011 12:07:31

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Подключение нескольких баз к проекту на Django.

chkur
Прошу прощения за откапывание темы.
Не простим. Одна тема - один вопрос. Не надо бояться создвать темы - форум для этого и создан.



Офлайн

#7 Янв. 18, 2011 12:08:46

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Подключение нескольких баз к проекту на Django.

chkur
я понял, что мульти-db подключения возможны к базам одинаковой структуры. Я неправильно понял?
Нет. Могут иметь разную структуру.
chkur
Как быть в этом случае со справочниками?
Что такое “справочники”?



Офлайн

#8 Янв. 18, 2011 15:50:07

chkur
От:
Зарегистрирован: 2010-01-07
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение нескольких баз к проекту на Django.

Александр Кошелев
chkur
Как быть в этом случае со справочниками?
Что такое “справочники”?
Таблицы, используемые всеми приложениями в режиме readonly и регулярно обновляемые извне (к примеру, таблицы: справочник предприятий, справочник справочник почтовых индексов, телефонных кодов и т.д.) И, скажем, хотелось бы иметь одну общую таблицу пользователей (auth_user).

Александр Кошелев
chkur
я понял, что мульти-db подключения возможны к базам одинаковой структуры. Я неправильно понял?
Нет. Могут иметь разную структуру.
Пытаюсь осмыслить. В settings.py описываются местонахождение баз, затем роутерами описываются привязки приложений к базам, и в каждом приложении описываются свои модели. Так?

Как всё же лучше поступить со “справочными” “общими” таблицами? Согласно документации нельзя связывать таблицы из разных БД по ForeignKey или m2m. Все-таки делать “приложение-сервис”, предоставляющее данные из таблиц-справочников другим приложениям и затем обрабатывать связь вручную?



Отредактировано (Янв. 18, 2011 16:20:11)

Офлайн

#9 Янв. 18, 2011 21:43:44

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Подключение нескольких баз к проекту на Django.

Вы бы взяли, да и сделали пробный проект, в нём бы всё и проверили.

Офлайн

#10 Янв. 18, 2011 22:31:16

chkur
От:
Зарегистрирован: 2010-01-07
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Подключение нескольких баз к проекту на Django.

Сегодня пробовали пользовать dblink - пока безрезультатно.



Офлайн

  • Начало
  • » Django
  • » Подключение нескольких баз к проекту на Django.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version