2011-10-21 37 views
7

No estoy seguro de si esto es un error o si esto realmente eliminó un archivo migration.rb. Solía ​​generar para crear la siguiente migración:¿Archivo eliminado migration.rb? Posible error en los rieles?

$ rails generate migration add_delta_to_submissions

invoke active_record 
    create db/migrate/20111020175649_add_delta_to_submissions.rb 

entonces me di cuenta de que me he olvidado de incluir todas las columnas, por lo que utiliza la flecha hacia arriba en la consola y sobreescribí generar con destruir:

$ rails destroy migration add_delta_to_submissions

invoke active_record 
    remove db/migrate/20111020175649_add_delta_to_submissions.rb 

Todo bien hasta ahora, ahora es el momento de ejecutar la migración con la columna que necesito. Aquí es donde el problema viene en - He utilizado la flecha hacia arriba de nuevo - pero sólo una vez - y añadí mi información de la columna:

$ rails destroy migration add_delta_to_submissions delta:integer

invoke active_record 
    remove migration.rb 

Me di cuenta que probablemente no debería estar utilizando la flecha arriba para los comandos tan volátil como GENERAR y DESTRUIR (¡lección aprendida!), pero ese comando volvió indicando que ELIMINÓ el archivo migration.rb. Ni siquiera sabía que había un archivo migration.rb, especialmente ninguno que pudiera eliminarse tan fácilmente.

por diversión, decidí tratar de engañar a la consola de comandos mediante la adición de la letra x en el extremo de la migración palabra - y recibió este mensaje:

$ rails destroy migrationx add_delta_to_submissions delta:integer

Could not find generator migrationx. 

Por lo tanto, creo que hay podría ser un error con el comando rails destroy. Una vez que se dio cuenta de que ya no había un archivo add_delta_to_submissions.rb, simplemente lo cortó y vió el .rb a la palabra migración (o cualquier palabra después de DESTROY). Eso parece un poco peligroso ...

Independientemente de eso, tengo curiosidad por saber si de alguna manera he comprometido mi entorno RAILS (rieles 3.1, ruby ​​1.8.7) ahora que se ha eliminado el archivo migration.rb. Si es así, ¿cuáles son mis opciones para solucionar esa situación?

Muchas gracias de antemano ...

+0

Lo mismo me pasó a mí. ¿Has descubierto lo que pasó? – marimaf

+1

Lo mismo me pasó cuando ejecuté el comando destruir pero adjunté .rb al final del nombre de la migración (porque estoy senil). Creo que es inofensivo, pero es un error de algún tipo en el generador, no obstante. –

Respuesta

1

¿Tiene git en su sistema? Lo mismo sucedió hoy y ejecuté:

git diff | grep migration 

No salió nada en mi sistema. Busqué el archivo y todavía no pude encontrar migration.rb en ninguno de mis proyectos de Rails 3.1. ¿Probablemente puede ignorarlo sin ningún daño?

+0

Me refiero a otros proyectos y archivos de Rails. Lo siento. –

+0

Puede editar su comentario en su respuesta. – meagar

2

También ocurre cuando se escribe un nombre de la migración inexistente como parámetro para destruir comando

$rails migration destroy non-existing-migration-name 

invoke active_record 
remove migration.rb 

Pero creo que es inofensivo.

+0

También me pasa a mí. –

0

Lo mismo me ha pasado a mí.

Parece que hay un archivo migration.rb dentro de ActiveRecord, y aunque puede extend ActiveRecord::Base, no estoy seguro de que realmente pueda acceder a esos archivos desde algún lugar dentro del directorio de proyectos de sus raíles.

Parece que hay un precedente para deleting the migration file manually en lugar de a través de un comando de rails destroy automático.

Cuestiones relacionadas