I'm trying to use Travis Continuous Integration on a Rails project. The documentation says that the test db must be configured as following for SQLite3:
test: adapter: sqlite3 database: ":memory:" timeout: 500
But I'd like to keep my default configuration for local tests. Is it possible to keep both my local settings and the Travis requirements?
My solution for this problem is fully based on a blog post with a few differences:
config/database.travis.yml
;cp config/database.travis.yml config/database.yml
in before script section of .travis.yml
;config/database.yml
in source tree.Here is full listing for both files:
# .travis.yml language: ruby rvm: - 1.9.3 env: - DB=sqlite - DB=mysql - DB=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.travis.yml config/database.yml - mysql -e 'create database strano_test' - psql -c 'create database strano_test' -U postgres # config/database.travis.yml sqlite: &sqlite adapter: sqlite3 database: db/<%= Rails.env %>.sqlite3 mysql: &mysql adapter: mysql2 username: root password: database: strano_<%= Rails.env %> postgresql: &postgresql adapter: postgresql username: postgres password: database: strano_<%= Rails.env %> min_messages: ERROR defaults: &defaults pool: 5 timeout: 5000 host: localhost <<: *<%= ENV['DB'] || "postgresql" %> development: <<: *defaults test: <<: *defaults production: <<: *defaults
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With