Что вы ожидаете ::
settings.py
DATABASES = {
'default': {
'NAME': 'db_name',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'user',
'PASSWORD': 'password',
'HOST': 'host',
'PORT': '5432',
'DEFAULT_TABLESPACE': 'tablespace-name',
}
}
Когда я использую DEFAULT_TABLESPACE, я ожидаю, что доступ будет предоставлен с использованием этого табличного пространства по умолчанию.Но не важно, что я там использую.Кроме того, если я явно использую db_tablespace в мета-классе моделей, он ничего не делает, насколько я могу судить.
Я также пробовал разных пользователей, но даже пользовательские postgres не работают.Если я определю db_table = "tablespace.tablename", он также не будет работать.
SQL, который будет работать:
select count(*) from schemaname.tablename
Я сделал резервную копию базы данных и восстановил ее локально,без создания табличного пространства.Хорошо импортирует и игнорирует табличное пространство.Тогда это просто работает.
Как настроить Django для postgres с табличными пространствами?Или имя схемы ??На самом деле я ничего не понимаю в этом, поэтому я надеюсь, что вы, ребята, сможете мне помочь.
См. Также: https://docs.djangoproject.com/en/dev/topics/db/tablespaces/
Использование Django 1.3.1, postgresql 8.4, psycopg2
Обновление:
Кажется, что "схема по умолчанию" не используется при использовании табличных пространств.Я попробовал некоторые тесты, и вот результаты с использованием ./manage.py dbshell:
Это работает на моей базе данных без табличных пространств, но не работает на базе данных с табличными пространствами:
select * from parameter;
Это работает на обеих базах данных:
select * from tablespace.parameter;
К сожалению, опция "DATABASE_SCHEMA" в настройках db не работает, как и "db_schema" в метаобъекте моделей.Так что теперь проблема немного яснее.У кого-нибудь есть решение этой проблемы?