Travis CI“ActiveRecord :: NoDatabaseError:FATAL:database”jobTrak_test“不存在”

时间:2016-03-08 13:35:42

标签: ruby-on-rails postgresql travis-ci

所以,我整晚都在研究一个Rails项目,并决定Travis会很好,因为我可以将我的Windows机器(测试不起作用)的GitHub更改到Travis,并且成功构建/测试,我可以将最新版本提取到服务器。

但是,为了保护我的个人信息,database.yml和secrets.yml已被放入.gitingore并替换为示例文件。

因此,我需要与Travis做一些额外的工作,让它来生成数据库。

.travis.yml:

# Travis CI Configuration
language: ruby
rvm:
  - 2.2.3
services:
  - postgresql
before_script:
  - psql -c 'create database jobTrak_test;' -U postgres
  - cp config/database.yml.travis config/database.yml

database.yml.travis:

# Database config
test:
  adapter: postgresql
  database: jobTrak_test
  username: postgres

Travis Build Log

我没有在网上看到任何其他内容,所以我在这里做错了。

如果您需要任何其他信息,请与我们联系。

3 个答案:

答案 0 :(得分:1)

尝试创建db rails方式

before_script:
  - cp config/database.yml.travis config/database.yml
  - RAILS_ENV=test bundle exec rake db:create

答案 1 :(得分:1)

将服务和before_script条目添加到.travis.yml为我修复了类似的错误

language: ruby

bundler_args: --without production

services:
  - postgresql

before_script:
  - psql -c 'create database marina_test;' -U postgres

看一下travis文档: https://docs.travis-ci.com/user/database-setup/#PostgreSQL

答案 2 :(得分:0)

您应该尝试使用以下命令指定数据库类型:

env:
  - DB=pgsql

注意:postgresql和postgres不起作用。请使用pgsql !!!

以下是适用于我的完整代码:

.travis.yml

language: ruby

rvm:
  - 2.2

env:
  - DB=pgsql

services:
  - postgresql

script:
  - RAILS_ENV=test bundle exec rake db:migrate --trace
  - bundle exec rake db:test:prepare
  - bundle exec rake

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

配置/ database.yml.travis

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5

development:
  <<: *default
  database: courseselect_development

test:
  <<: *default
  database: courseselect_test

production:
  <<: *default
  database: courseselect_developement

顺便说一句,我的文件config/database.ymlconfig/database.yml.travis

的内容相同