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

fre*_*rik 11 travis-ci

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

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

'sqlalchemy.url': 'postgresql://foo:bar@localhost/testing_db'
Run Code Online (Sandbox Code Playgroud)

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

postgresql: &postgresql
adapter: postgresql
username: foo
password: bar
database: testing_db
Run Code Online (Sandbox Code Playgroud)

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

services:
  - postgresql

before_script:
  - psql -c 'create database stalker_test;' -U postgres
  - mkdir config && cp database.travis.yml config/database.yml
Run Code Online (Sandbox Code Playgroud)

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

OperationalError: (psycopg2.OperationalError) FATAL:  role "foo" does not exist
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

fre*_*rik 16

添加以下内容以.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
Run Code Online (Sandbox Code Playgroud)