【发布时间】:2012-01-30 15:04:00
【问题描述】:
假设我有一个名为“my_schema”的架构,如何为该特定架构创建带有“django syncdb”的表?或者有没有其他方法可以从我的 django 模型中快速创建表?我认为,默认情况下,django 会为“公共”模式创建表。
【问题讨论】:
-
您在谈论选项 --database=DATABASE:指定要同步的数据库。默认为“默认”数据库。
-
没有。我指的是模式。 postgresql.org/docs/9.0/static/ddl-schemas.html 。默认情况下,django 使用名为“public”的模式
-
Django 默认不使用“公共”模式。 Psycopg2 默认使用“公共”模式(是的,我已经用 grep 阅读过代码)。您可以尝试在 DATABASE 定义中设置 'OPTIONS': { 'schema': 'yourschema' }(与 'USER'、'HOST' 等处于同一级别)。
-
根据 psycopg 2.4.1 的源代码,extras.py 第 863 行:您应该在数据库 NAME 设置前加上模式名称和一个点。
-
jpic: extras.py 中的那个代码只在注册一个typecaster自动转换复合类型的时候调用,和设置一个默认的schema名字没有关系,到目前为止,我一直找不到一种方法。