Несколько поддержка БД в django

Вам нужно переместить эту строку вверх, за пределами вашего цикла получения:

 cap = cv2.VideoCapture(0)

Он выполняет единовременную только инициализацию.

10
задан Paco 8 September 2013 в 00:00
поделиться

8 ответов

Новое обсуждение, которое я видел на нем, было в Предложении: удобный для пользователя API для потока django-разработчиков мультиподдержки БД, который также имеет пример одного способа использовать несколько баз данных с помощью менеджеров в исходном сообщении.

4
ответ дан 3 December 2019 в 16:11
поделиться

При чтении нескольких из много (много) потоки на этом предмете в django-dev Вы будете видеть, что, что простые взгляды, не. Если Вы выбираете единственный вариант использования, то это выглядит легким, но как только Вы начинаете делать вывод всегда, Вы начинаете сталкиваться с проблемой.

Использовать вышеупомянутый поток в качестве примера, когда Вы говорите "несколько баз данных", которые из следующего являются Вами говорящий о?

  • Весь DB на той же машине под тем же механизмом.
  • Весь DB на той же машине, различных механизмах (Например, MySQL + PostgreSQL)
  • Одно Ведущее устройство DB с ведомыми устройствами только для чтения N на различных машинах.
  • Sharding таблиц через несколько серверов БД.

Будете Вы нуждаться:

  • Внешние ключи через DBS
  • СОЕДИНЕНИЯ через машины и/или механизмы
  • и т.д. и т.д.

Одна из проблем с гладким ORM как Django - то, что он скрывает все те грязные детали под хорошим заданием краски. Чтобы продолжить делать, это, но затем добавлять в любом вышеупомянутом, не Легко (TM).

3
ответ дан 3 December 2019 в 16:11
поделиться

Я думаю, что необходимо будет обратиться к "сырым данным sql".. вид вещи..
послушайте: http://docs.djangoproject.com/en/dev/topics/db/sql/

Вам нужно "соединение" с Вашей другой базой данных, если Вы смотрите на django/db/__init__.py вокруг строки 39 (в моей версии..)

connection = backend.DatabaseWrapper(**settings.DATABASE_OPTIONS)

попытайтесь взять его оттуда..
P.S. Я действительно не попробовал это или что-либо.. просто попытка указать в общем направлении того, что я думаю, могла бы решить Вашу проблему.

0
ответ дан 3 December 2019 в 16:11
поделиться

Эрик Флоренцано написал очень хорошую запись в блоге, которая позволяет вам поддерживать несколько баз данных по адресу: Easy MultipleDatabase Support для Django .

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

2
ответ дан 3 December 2019 в 16:11
поделиться

Подход Эрика Флоренцано хорошо работает, если все ваши базы данных используют один и тот же механизм. Если у вас разные движки (в моем случае Postgres и MSSQL), вы столкнетесь со многими проблемами глубоко в коде ORM (например, models / sql / where.py с использованием синтаксиса SQL соединения по умолчанию).

Если вам это нужно, работы, вам следует дождаться проекта MultiDB Alex Gaynor, который запланирован для Django 1.2

0
ответ дан 3 December 2019 в 16:11
поделиться

Если вам просто нужно несколько подключений, вы можете сделать что-то вроде этого:

from django.db import load_backend
myBackend = load_backend('postgresql_psycopg2') # or 'mysql', 'sqlite3', 'oracle'
myConnection = myBackend.DatabaseWrapper({
    'DATABASE_HOST': '192.168.1.1',
    'DATABASE_NAME': 'my_database',
    'DATABASE_OPTIONS': {},
    'DATABASE_PASSWORD': "",
    'DATABASE_PORT': "",
    'DATABASE_USER': "my_user",
    'TIME_ZONE': "America/New_York",})
# Now we can do all the standard raw sql stuff with myConnection.
myCursor = myConnection.cursor()
myCursor.execute("SELECT COUNT(1) FROM my_table;")
myCursor.fetchone()
9
ответ дан 3 December 2019 в 16:11
поделиться

Это будет в Django 1.2.

См. http://docs.djangoproject.com/en/dev/topics/db/multi-db/

6
ответ дан 3 December 2019 в 16:11
поделиться

Начиная с Django 1.2, он будет поддерживать несколько баз данных. См .: http://docs.djangoproject.com/en/dev/topics/db/multi-db/ Версия 1.2 сейчас находится в стадии бета-тестирования

0
ответ дан 3 December 2019 в 16:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: