【发布时间】:2013-12-19 16:03:12
【问题描述】:
我发现自己有一个 django 项目,它处理映射在相似表名上的两个不同类:
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 使用用户“John”连接到数据库,而不是任何角色的成员,但在其他服务器上它连接到用户“Eric”, foo 角色的成员。
这里有两个问题:
- 如果django's meta class 没有提到任何特定的架构,Postgres 如何决定它将使用哪个表?到目前为止,用户 Eric 似乎总是会点击
foo.bar表,而不是public.bar表,无论调用的类如何。 对于用户“John”,我只使用BarA类,它正确地命中了public.bar。 - Django 似乎不处理模式;对于这种情况,this solution 是否被认为是一种好的做法(请注意,我无法重命名现有表)?
【问题讨论】:
标签: django postgresql