所以,我整晚都在研究一个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
我没有在网上看到任何其他内容,所以我在这里做错了。
如果您需要任何其他信息,请与我们联系。
答案 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.yml
与config/database.yml.travis