假设我有一个名为“my_schema”的模式,如何使用“django syncdb”为该特定模式创建表?还是有其他快速从我的Django模型创建表的替代方法吗?我认为,默认情况下,Django会为“public”架构创建表。
假设我有一个名为“my_schema”的模式,如何使用“django syncdb”为该特定模式创建表?还是有其他快速从我的Django模型创建表的替代方法吗?我认为,默认情况下,Django会为“public”架构创建表。
首先,您必须拥有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上进行了测试。
我使用了以下信息,对我很有效:
'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'dab_name', 'USER': 'username', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '5432', 'OPTIONS': { 'options': '-c search_path=tours' #模式名称 } }
在postgresql 9和django 1.10.2上进行了测试。
感谢@romke