Предполагая, что у меня есть схема с именем «my_schema», как мне создать таблицы с «django syncdb» для этой конкретной схемы? Или есть ли другие альтернативы для быстрого создания таблиц из моих моделей django? Я думаю, по умолчанию django создает таблицы для «общедоступной» схемы.Как указать имя схемы во время работы «syncdb» в django?
7
A
ответ
5
Во-первых, вы должны иметь psycopg2> = 2.4.3 [1]. Если у вас есть, то вы можете добавить схему для OPTIONS в конфигурации базы данных на основе словаря, например:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
# ...
'OPTIONS': {
'options': '-c search_path=my_schema'
}
}
}
Проверено на PostgreSQL 8.4 и Джанго 1,3
0
Я воспользовался нижеследующей информацией и работаем для меня
'по умолчанию': { 'МОТОРА': 'django.db.backends.postgresql_psycopg2', 'NAME': 'dab_name', 'USER': 'имени пользователя', 'PASSWORD': 'пароль', ' HOST ": 'локальный', 'PORT': '5432', 'OPTIONS': { 'Опции': '-c search_path = имя #schema Турс'}}
Проверено на 9 и PostgreSQL django 1.10.2
Thanks @romke
Вы говорите о опции ** - database = DATABASE **: * Назначает базу данных для синхронизации. По умолчанию используется база данных по умолчанию. * – jpic
Нет. Я имею в виду схему. http://www.postgresql.org/docs/9.0/static/ddl-schemas.html. По умолчанию django использует схему с именем «public» –
Django по умолчанию не использует «общедоступную» схему. Psycopg2 использует общедоступную схему по умолчанию (да, я прочитал код с grep). Вы можете попробовать установить «ВАРИАНТЫ»: {'schema': 'yourschema'} в вашем определении DATABASE (на том же уровне, что и «USER», «HOST» и т. Д.). – jpic