如何在 django 中定义两个数据库,一个用于生产,一个用于开发

Oth*_*Oth 5 python django heroku

我有一个在 Heroku 上运行的项目,我的本地计算机上没有安装 PostgreSQL。我想使用 继续在本地计算机上运行该应用程序sqlite3,但是当我将其推送到 Heroku 时,它将转换为pg

我想做的就是有一个 IF 条件,如果这是开发,则运行 sqlite3 .. 但如果是生产运行,则执行以下命令。

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': '',
    'HOST': '',
    'PORT': 5432,
    'USER': '',
    'PASSWORD': ''
  }
}
Run Code Online (Sandbox Code Playgroud)

Heroku 正在与dj_database_url

import dj_database_url
DATABASES['default'] =  dj_database_url.config()
Run Code Online (Sandbox Code Playgroud)

它基本上类似于Rails我们定义用于生产的 gem 以及用于测试和开发的另一个 gem。

小智 3

您可以在项目中创建 local_settings.py 文件,然后从基本设置文件中导入它。这样您就可以针对每个环境进行不同的设置。

此 local_setting 文件应包含在您的 .gitignore 中