DATABASES = { 'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'django', 'USER': 'd', 'PASSWORD': '***', 'HOST': '127.0.0.1', 'PORT': '5432', 'OPTIONS': { 'options': '-c search_path=django'}}, 'messenger': {'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'django', 'USER': 'messenger', 'PASSWORD': '***', 'HOST': '127.0.0.1', 'PORT': '5432', 'OPTIONS': {'options': '-c search_path=messenger' }}}
написал роут.
class Route(object):
def allow_migrate(self, db, app_label, model=None, **hints):
if app_label == 'messenger':
if db == 'messenger':
return True
else:
return False
else:
return True
Делаю миграцию, В бд default уезжают все внутри джанговские приложения, Делаю миграцию для своего проекта (фай модели не пустой).
./manage.py makemigrations messenger Migrations for 'messenger': 0001_initial.py: - Create model Email - Create model Error - Create model EventMessenger - Create model PhoneNumber - Create model User - Add field user to phonenumber - Add field eventmessenger to error - Add field user to error - Add field user to email ./manage.py migrate messenger Operations to perform: Apply all migrations: messenger Running migrations: Rendering model states... DONE Applying messenger.0001_initial... OK `
./manage.py dbshell --database messenger psql (9.1.20) django=> \c django Вы подключены к базе данных "django" как пользователь "messenger". django=> SELECT SESSION_USER, CURRENT_USER; session_user | current_user --------------+-------------- messenger | messenger (1 строка) django=> \dn Список схем Имя | Владелец -----------+----------- django | django messenger | messenger public | postgres (3 строки) django=> show search_path; search_path ---------------- "$user",public (1 строка) django=> \dt Отношения не найдены.
Видно что переопределить search_path django не удалось. Но в данном случае это не важно, так как имя пользователя и имя схемы совпадает.
Что я делаю не так? Я очень хочу вашей помощи.