如何使用自定义数据库凭据设置Travis CI和postgresql?

时间:2017-02-11 14:32:10

标签: travis-ci

我尝试使用Travis CI设置自定义Postgres凭据,因为我想避免要测试的代码中的现有凭据定义。

测试代码定义应该访问数据库:

'sqlalchemy.url': 'postgresql://foo:bar@localhost/testing_db'

因此我创建了一个database.travis.yml文件:

postgresql: &postgresql
adapter: postgresql
username: foo
password: bar
database: testing_db

...并将以下内容添加到我的.travis.yml

services:
  - postgresql

before_script:
  - psql -c 'create database stalker_test;' -U postgres
  - mkdir config && cp database.travis.yml config/database.yml

但是,我在测试期间仍然得到这个:

OperationalError: (psycopg2.OperationalError) FATAL:  role "foo" does not exist

我做错了什么?

2 个答案:

答案 0 :(得分:14)

将以下内容添加到.travis.yml解决了我的问题。无需database.travis.yml个文件。

before_script:
  - psql -c "CREATE DATABASE testing_db;" -U postgres
  - psql -c "CREATE USER foo WITH PASSWORD 'bar';" -U postgres

答案 1 :(得分:0)

Database.yml似乎是一个Ruby On Rails的东西。 Travis CI开始使用rails / ruby​​测试,因此docs可能反映了这一点。

您可能需要在单独的脚本或迁移设置中进行设置,而不是依赖travis,除了运行服务。