【发布时间】:2021-12-10 20:19:33
【问题描述】:
我正在尝试使用自定义架构在我的 Django 项目中配置 PostgreSQL。我的设置是:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.environ['DB_DATABASE'],
'USER': os.environ['DB_USERNAME'],
'PASSWORD': os.environ['DB_PASSWORD'],
'HOST': os.environ.get('DB_HOST', 'localhost'),
'PORT': os.environ.get('DB_PORT', '5432'),
'OPTIONS': {
'options': '-c search_path=my_custom_schema',
},
}
}
我也希望在架构 my_custom_schema 中创建 django 系统表。当我进行第一次迁移时,我得到了错误。
$ python manage.py migrate
...
psycopg2.errors.InvalidSchemaName: no schema has been selected to create in
LINE 1: CREATE TABLE "django_migrations" ("id" bigserial NOT NULL PR...
...
我该如何解决?
我也试过这样的选择:
'OPTIONS': {
'options': '-c search_path=my_custom_schema,public',
},
迁移进展顺利,但表是在 public 架构中创建的,而不是 my_custom_schema。
Python 版本:3.9.7
Django 版本:3.2.8
Psycopg2 版本:psycopg2-binary==2.9.1
PostgreSQL 版本:12.8
【问题讨论】:
-
@sunilghimire 它没有帮助。
标签: django postgresql psycopg2