如何在运行时指定模式名称" syncdb"在django?

时间:2011-12-30 14:52:29

标签: python database django

假设我有一个名为“my_schema”的模式,如何为该特定模式创建带有“django syncdb”的表?或者还有其他选择从我的django模型快速创建表格?我认为,默认情况下,django会为“公共”模式创建表。

2 个答案:

答案 0 :(得分:6)

首先,你必须有psycopg2> = 2.4.3 [1]。如果您有,那么您可以在基于字典的数据库配置中向OPTIONS添加模式,如下所示:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    # ...
    'OPTIONS': {
      'options': '-c search_path=my_schema'
    }
  }
}

在postgresql 8.4和django 1.3上测试

  1. http://initd.org/psycopg/docs/module.html?highlight=connect#psycopg2.connect
  2. http://www.postgresql.org/docs/8.4/static/libpq-connect.html#LIBPQ-CONNECT-OPTIONS

答案 1 :(得分:0)

我使用了以下信息并为我工作

'默认':{         ' ENGINE':' django.db.backends.postgresql_psycopg2',         ' NAME':' dab_name',         '用户':'用户名',         '密码':'密码',         ' HOST':' localhost',         ' PORT':' 5432',         ' OPTIONS':{             '选项':' -c search_path = tours' #schema名称         }     }

在postgresql 9和django 1.10.2上测试

谢谢@romke