2012-05-14 16 views
13

Estoy intentando construir mi proyecto Ruby on Rails desde github en Travis-CI, pero me encuentro con un problema de migración. Ejecuta una tarea de rake para la migración, pero luego se queja del mismo paso de migración.rake db: la migración no funciona en la construcción de travis-ci

De ello se deduce mi archivo .travis.yml:

language: ruby 
rvm: 
    - 1.9.2 
before_script: 
    - "rake db:migrate RAILS_ENV=test" 

Y aquí está el resultado de generación:

1Using worker: ruby4.worker.travis-ci.org:travis-ruby-3 
2 
3 
4 
5$ cd ~/builds 
6 
7 
8$ git clone --depth=100 --quiet git://github.com/rafaelportela/bacilo.git rafaelportela/bacilo 
9 
10 
11 
12$ cd rafaelportela/bacilo 
13 
14$ git checkout -qf 7553b7351b7a642e39ea7b55204de6cd4f320c36 
15 
16 
17$ export TRAVIS_RUBY_VERSION=1.9.2 
18 
19$ rvm use 1.9.2 
20Using /home/vagrant/.rvm/gems/ruby-1.9.2-p290 
21 
22$ ruby --version 
23ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux] 
24 
25$ gem --version 
261.8.17 
27 
28 
29$ export BUNDLE_GEMFILE=/home/vagrant/builds/rafaelportela/bacilo/Gemfile 
30 
31$ bundle install 
32Fetching gem metadata from https://rubygems.org/....... 
33Using rake (0.9.2.2) 
34Installing i18n (0.6.0) 
35Installing multi_json (1.3.4) 
36Installing activesupport (3.2.2) 
37Installing builder (3.0.0) 
38Installing activemodel (3.2.2) 
39Installing erubis (2.7.0) 
40Installing journey (1.0.3) 
41Installing rack (1.4.1) 
42Installing rack-cache (1.2) 
43Installing rack-test (0.6.1) 
44Installing hike (1.2.1) 
45Installing tilt (1.3.3) 
46Installing sprockets (2.1.3) 
47Installing actionpack (3.2.2) 
48Installing mime-types (1.18) 
49Installing polyglot (0.3.3) 
50Installing treetop (1.4.10) 
51Installing mail (2.4.4) 
52Installing actionmailer (3.2.2) 
53Installing arel (3.0.2) 
54Installing tzinfo (0.3.33) 
55Installing activerecord (3.2.2) 
56Installing activeresource (3.2.2) 
57Installing bcrypt-ruby (3.0.1) with native extensions 
58Installing coffee-script-source (1.3.1) 
59Installing execjs (1.3.1) 
60Installing coffee-script (2.2.0) 
61Installing rack-ssl (1.3.2) 
62Installing json (1.7.0) with native extensions 
63Installing rdoc (3.12) 
64Installing thor (0.14.6) 
65Installing railties (3.2.2) 
66Installing coffee-rails (3.2.2) 
67Installing orm_adapter (0.0.7) 
68Installing warden (1.1.1) 
69Installing devise (2.0.4) 
70Installing jquery-rails (2.0.2) 
71Installing pg (0.13.2) with native extensions 
72Using bundler (1.1.3) 
73Installing rails (3.2.2) 
74Installing sass (3.1.16) 
75Installing sass-rails (3.2.5) 
76Installing sqlite3 (1.3.6) with native extensions 
77Installing uglifier (1.2.4) 
78Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. 
79Post-install message from rdoc: 
80Depending on your version of ruby, you may need to install ruby rdoc/ri data: 
81 
82<= 1.8.6 : unsupported 
83 = 1.8.7 : gem install rdoc-data; rdoc-data --install 
84 = 1.9.1 : gem install rdoc-data; rdoc-data --install 
85>= 1.9.2 : nothing to do! Yay! 
86 
87 
88$ rake db:migrate RAILS_ENV=test 
89== DeviseCreateUsers: migrating ============================================== 
90-- create_table(:users) 
91 -> 0.0174s 
92-- add_index(:users, :email, {:unique=>true}) 
93 -> 0.0017s 
94-- add_index(:users, :reset_password_token, {:unique=>true}) 
95 -> 0.0010s 
96== DeviseCreateUsers: migrated (0.0239s) ===================================== 
97 
98 
99$ bundle exec rake 
100You have 1 pending migrations: 
101 20120508052346 DeviseCreateUsers 
102Run `rake db:migrate` to update your database then try again. 
103 
104 
105Done. Build script exited with: 1 

lo agradecería cualquier sugerencia! =]

+0

Hola Rafael, Supongo que está ejecutando su entorno de prueba en un sqlite3 db con el uso de memoria, ¿verdad? Porque yo estoy luchando con el mismo problema combinado de: - ** ** Travis-CI - ** ** sqlite {base de datos: "**: Memoria: **"} estoy preguntando también , porque esta configuración también se recomienda/da como ejemplo en el [documento de travis-ci] (http://docs.travis-ci.com/user/database-setup/#SQLite3). – loybert

+0

esto funciona, pero es posible que deba modificarlo a 'bundle exec rake db: migrate RAILS_ENV = test' – equivalent8

Respuesta

28

This blog post me ayudó muchísimo cuando estaba tratando de que mi aplicación Rails 3.2 funcionara con Travis CI, y escribí un archivo .travis.yml que realmente funcionó. Esta es la mía para su referencia, por lo que creo que sirve:

.travis.yml

language: ruby 
rvm: 
    - 1.9.2 
    - 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 rspec spec/ 
before_script: 
    - mysql -e 'create database my_app_test' 
    - psql -c 'create database my_app_test' -U postgres 
bundler_args: --binstubs=./bundler_stubs 
+0

Gracias. ¿Cómo gestionaste la base de datos.yml para travis? y también, ¿pueden publicar los contenidos del archivo bundler_stubs? –

+0

@Pratick, con suerte debería obtener sus respuestas de [esta pregunta de StackOverflow] (http://stackoverflow.com/q/11156627/567863). –

6

en lugar de ejecutar rake db:migrate RAILS_ENV=test ejecutar rake db:test:prepare en su lugar.

Esto es porque rake db:migrate ejecutará todos las migraciones en su base de datos de prueba, lo que podría llevar mucho tiempo si tuviera muchas migraciones. La tarea db:test:prepare no hará eso, en su lugar, solo configurará la base de datos de prueba con el esquema desde db/schema.rb.

Dale una oportunidad y ve si eso funciona.

+1

Esto generalmente es una mala idea. Desea que su entorno de prueba encuentre problemas que potencialmente podrían ocurrir en la producción. En producción, ejecutará migraciones, no cargará su esquema desde su db/schema.rb. Con el fin de encontrar posibles problemas con las migraciones que podrían ocurrir en la producción, es mejor ejecutar 'rake db: migrate' –

0

La solución que solucionó el problema para mí estaba corriendo: rake db:schema:load en lugar de rake db:migrate RAILS_ENV=test

Cuestiones relacionadas