如何为Heroku上托管的Django项目设置Travis CI?

Dav*_* D. 4 django heroku travis-ci

我正在尝试在我的Django项目上设置TravisCI.

我正在使用Heroku,其中一个经典模式是使用env var来获取postgres数据库URL:

settings.py

DEBUG = (os.environ['DJ_DEBUG'] == 'True')
import dj_database_url
DATABASES = {'default': dj_database_url.config(conn_max_age=500)}
Run Code Online (Sandbox Code Playgroud)

我本地环境的.env文件示例

DJ_DEBUG=True
DATABASE_URL=postgres://root:captainroot@127.0.0.1:5432/captaincook
Run Code Online (Sandbox Code Playgroud)

现在,这是我的.travis.yml conf文件,它试图使用本地创建的db:

language: python

python:
  - 3.5

addons:
  - postgresql: "9.5"

before_install:
  - export DJ_DEBUG=False
  - export DABATASE_URL=postgres://postgres@localhost/travisdb

install:
  - pip install -r requirements.txt

before_script:
  - psql -c "CREATE DATABASE travisdb;" -U postgres
  - python captaincook/manage.py migrate --noinput

env:
  - DJANGO=1.9.10

script: python captaincook/manage.py test --keepdb
Run Code Online (Sandbox Code Playgroud)

该项目无处不在,除非部署在travis上,我得到了这个Django错误: django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

任何的想法?谢谢.

Dan*_*man 6

你有一个错字:DABATASE_URL而不是DATABASE_URL.

但我怀疑,而不是明确使用导出before_install,你应该使用env密钥:

env:
  - DJ_DEBUG=False
  - DATABASE_URL=postgres://postgres@localhost/travisdb
Run Code Online (Sandbox Code Playgroud)