Las migraciones están pendientes; ejecutar ‘bin/rake db:migrate RAILS_ENV=desarrollo» para resolver este problema [no puede continuar]

Me parecen tener una circular de la cuestión en lo que respecta a Ruby on Rails procedimiento de migración. Estoy siguiendo la introducción del artículo y he llegado al punto cuando la necesito para crear mi primera tabla.

He encontré el siguiente,

[[email protected] working_ror]# rails generate model Homepage first_name:string  last_name:string email:string message:text
  invoke  active_record
  create    db/migrate/20131119203948_create_homepages.rb
  create    app/models/homepage.rb
  invoke    test_unit
  createtest    /models/homepage_test.rb
  createtest    /fixtures/homepages.yml

Luego procedí con la migración,

[[email protected] working_ror]# rake db:migrate
==  CreateHomepages: migrating ================================================
-- create_table(:homepages)
   -> 0.0493s
==  CreateHomepages: migrated (0.0494s) =======================================

sin embargo, cuando ejecuto mi aplicación me aparece el siguiente mensaje,

Migrations are pending; run 'bin/rake db:migrate RAILS_ENV=development' to resolve this issue.

pero, SI ejecuto la anterior,

[[email protected] working_ror]# rake db:migrate RAILS_ENV=development
[[email protected] working_ror]# 

y el mensaje sigue …

He gastado una considerable cantidad de tiempo a la investigación de los foros en los que lo más cercano que pude encontrar fue a caer y volver a construir todo lo que han hecho los siguientes.

rake db:gota
rake db:create
rake db:migrate

y los resultados son los mismos.

  • ¿Cuál es la salida de rails -v y cat Gemfile | grep rails?
  • Sólo para estar seguro: ¿reinicie la aplicación, después de ejecutar las migraciones?
  • ¿Cuál es la salida de rails -v, Rieles 4.0.1 y gato Gemfile | grep carriles?, # Paquete de borde Rieles lugar: gem ‘rieles’, github: ‘rails/rails’ joya ‘rieles’, ‘4.0.1’ joya ‘sass-rails’, ‘~> 4.0.0’ joya ‘de café-rails’, ‘~> 4.0.0’ joya ‘de jquery rails’ # Turbolinks hace enlaces siguientes en la aplicación web más rápido. Leer más: github.com/rails/turbolinks # Construir JSON Api con facilidad. Leer más: github.com/rails/jbuilder # bundle exec rake doc:rails genera el API de bajo doc/api.
  • Mi comprensión de cómo el servidor de desarrollo no sería necesario un reinicio – estaba equivocado.
  • Lo resuelto por uno rápido , ver mi respuesta en el siguiente : stackoverflow.com/a/33054787/4902373
InformationsquelleAutor user3010587 | 2013-11-19

6 Kommentare

  1. 27

    Que usted necesita hacer

    bundle exec rake test:prepare 

    o

    bundle exec rake db:test:prepare

    y, a continuación,

    bundle exec rake db:migrate

    antes de ejecutar las especificaciones

    Saludos

    cita de : Por qué se me pide que ejecute el «rake db:migrate RAILS_ENV=test’?

    • En este problema al implementar un servidor CI, que utiliza db:test:prepare. El uso de test:prepare hizo el trabajo. No sé por qué. En OS X ambas variaciones trabajado, en linux (en el servidor CI), sólo test:prepare. Ambos con 5 rieles y ruby 2.3.1.
    • Tuve que purgar la prueba db primero para que funcione db:prueba:purga
  2. 7

    que usted puede hacer

    bundle exec rake test:prepare 

    En Rails 4.1+, que obsoleto db:prueba:preparar
    Ahora puedes utilizar:

    ActiveRecord::Migration.maintain_test_schema!

    Si necesita hacerlo de forma manual

    rake db:schema:load RAILS_ENV=test

    y, a continuación,

    bundle exec rake db:migrate
  3. 4

    intentar
    En RAILS_ROOT/config/environments/desarrollo.rb Establecer el siguiente parámetro a false:

    config.active_record.migration_error = false#:page_load

  4. 1

    Un extraño truco que se puede usar cuando las migraciones se atornillan (archivo eliminado manualmente, cambiar de nombre, etc.)

    1. El fuego de tu favorito DB herramienta de administración (por ejemplo. PGAdmin3) y vaya a la base de datos en cuestión.
    2. Busca una tabla llamada schema_migrations y examinar su contenido. Debe tener una sola columna llamada version. Este campo es utilizado por los Rieles para comprobar si las migraciones son hasta la fecha.
    3. Asegúrese de que la migración de las marcas de tiempo se corresponde con los datos de esta columna. Si ha eliminado un mayor migración, elimine la marca de tiempo correspondiente.
  5. 0

    De verificación para asegurarse de que la tabla no existe:

    1. tipo de rieles de dbconsole
    2. tipo .tablas (compruebe si hay un error durante el rake db:migrate que tiene el nombre de tabla like — create_table(:prueba de) rake abortado!)
    3. Si ves el nombre de la tabla después de ejecutar el .tablas en el tipo de consola – drop table TABLENAME;
    4. Entonces .quit para volver a la sucursal y ejecutar el rake db:migrate comando de nuevo.
  6. -1

    esto fue lo que hice:

    rails db:environment:set RAILS_ENV=test

    Si necesita hacerlo de forma manual

    rake db:schema:load RAILS_ENV=test

    y, a continuación,

    bundle exec rake db:migrate

    Gracias a Ahmed Ali……. tu comentario fue muy útil.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea