web-dev-qa-db-ja.com

カスタムデータベース認証情報を使用してTravisCIとpostgresqlを設定するにはどうすればよいですか?

テストするコード内の既存の資格情報の定義を避けたいので、TravisCIを使用してカスタム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

私は何が間違っているのですか?

12
fredrik

以下を.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
16
fredrik

Database.ymlはRuby on Railsthing。TravisCIはRails/Rubyテストなので、 docs はそれを反映している可能性があります。

ほとんどの場合、別のスクリプトまたは移行セットアップでセットアップを行う必要があり、サービスの実行を除いて、travisに依存しないでください。

0
Horia Coman