用于生产和开发的 Django 项目设置
Django project settings for production and development
在 Django 中,我更新了我的 git 从回购中提取。当我 运行 python3 manage.py collectstatic
它抛出 "myproject" 数据库不存在。我真的没有 myproject 数据库,因为在生产中我只有 prod_project 数据库。但是,django 不知何故试图从 base.py 加载 myproject 数据库,而不是从 prod.py
加载
# base.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myproject',
'USER': 'admin',
'PASSWORD': '*****',
'ATOMIC_REQUESTS': True,
},
}
# prod.py
from .base import *
DEBUG = False
TEMPLATE_DEBUG = DEBUG
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'prod_myproject',
'USER': 'admin',
'PASSWORD': '',
},
}
try:
from .local import *
except ImportError:
pass
# local.py is empty file
我的项目在 apps/project/prod 文件夹中:
/.git
etc/
apps/
static/
myproject/
settings/
base.py
prod.py.
beta.py
wsgy.py
manage.py
如果将这 2 个 setting.py 分开,您应该声明使用哪个 settings.py!
您可以通过以下方式执行此操作(mod_wsgi):
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'your_proj/settings_location/prod'
这会将 django 设置为使用特定的设置文件。
或者您可以在 shell 上执行此操作:
python manage.py collectstatic --settings=your_proj/settings_location/prod
这里指定你需要的设置文件。
参考:https://docs.djangoproject.com/en/1.10/topics/settings/#on-the-server-mod-wsgi
当我git 拉取时,__init__.py
里面的设置也被改变了。我不知道这件事。我认识的开发人员建议我检查此文件。我发现不同的设置文件被设置为默认值。我纠正了它。现在可以使用了。
在 Django 中,我更新了我的 git 从回购中提取。当我 运行 python3 manage.py collectstatic
它抛出 "myproject" 数据库不存在。我真的没有 myproject 数据库,因为在生产中我只有 prod_project 数据库。但是,django 不知何故试图从 base.py 加载 myproject 数据库,而不是从 prod.py
# base.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myproject',
'USER': 'admin',
'PASSWORD': '*****',
'ATOMIC_REQUESTS': True,
},
}
# prod.py
from .base import *
DEBUG = False
TEMPLATE_DEBUG = DEBUG
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'prod_myproject',
'USER': 'admin',
'PASSWORD': '',
},
}
try:
from .local import *
except ImportError:
pass
# local.py is empty file
我的项目在 apps/project/prod 文件夹中:
/.git
etc/
apps/
static/
myproject/
settings/
base.py
prod.py.
beta.py
wsgy.py
manage.py
如果将这 2 个 setting.py 分开,您应该声明使用哪个 settings.py!
您可以通过以下方式执行此操作(mod_wsgi):
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'your_proj/settings_location/prod'
这会将 django 设置为使用特定的设置文件。
或者您可以在 shell 上执行此操作:
python manage.py collectstatic --settings=your_proj/settings_location/prod
这里指定你需要的设置文件。
参考:https://docs.djangoproject.com/en/1.10/topics/settings/#on-the-server-mod-wsgi
当我git 拉取时,__init__.py
里面的设置也被改变了。我不知道这件事。我认识的开发人员建议我检查此文件。我发现不同的设置文件被设置为默认值。我纠正了它。现在可以使用了。