我正在尝试在我的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)}
我本地环境的.env文件示例
DJ_DEBUG=True
DATABASE_URL=postgres://root:captainroot@127.0.0.1:5432/captaincook
现在,这是我的.travis.yml配置文件,尝试使用本地创建的数据库:
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
该项目无处不在,除非部署在travis上,我得到了这个Django错误:
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
有什么想法吗?感谢。
答案 0 :(得分:5)
你有一个拼写错误:DABATASE_URL
而不是DATABASE_URL
。
但我怀疑,不应在before_install
中明确使用导出,而应使用env
key:
env:
- DJ_DEBUG=False
- DATABASE_URL=postgres://postgres@localhost/travisdb