я окажусь с Джанго обработки двух различных классов, отображенные на аналогичном имени таблицы проекта:Различные схемы, содержащие одни и те же таблицы имен
class BarA(models.Model):
[...]
class Meta:
db_table = 'bar' # doesn't specify any schema
class BarB(models.Model):
[...]
class Meta:
db_table = u'foo"."bar'
Проект использует базу данных, содержащую две схемы: public
и foo
.
Способ создания и развертывания этого приложения делает вещи еще более запутанными: на некоторых серверах django подключается к базе данных с пользователем «Джон», не является членом какой-либо роли, но на других серверах он подключается к пользователю «Eric», , член foo
.
два вопроса:
- Если django's meta class не говоря уже о какой-либо конкретной схемы, каким Postgres решить, какой стол она будет работать с? До сих пор кажется, что пользователь Eric всегда будет попадать в таблицу
foo.bar
, и никогда не будетpublic.bar
, независимо от вызываемого класса. С пользователем «Джон» я использую только классBarA
, и он правильно удаляетpublic.bar
. - Django, похоже, не обрабатывает схемы; this solution считается хорошей практикой для такого рода случаев (обратите внимание, что я не могу переименовать существующие таблицы)?