¿Hay una tarea de rastrillo que muestre las migraciones pendientes en una aplicación de rieles?
ruby-on-rails
rails-migrations
Solo lectura
fuente
fuente
Don't know how to build task 'db:migrate:status'
a los rieles 3.2.8rake -T
los otros pero sí?up
significa que la migración se ha ejecutado.down
significa que la migración no se ha ejecutado.La hay
rake db:abort_if_pending_migrations
(al menos en Rails 2.3.3, no estoy seguro de cuándo se introdujo). La descripción dice 'Genera un error si hay migraciones pendientes'. Esto parece usarse más como un requisito previo para otras tareas, pero supongo que podría usarlo para sus propósitos.EDITAR: Aquí hay un ejemplo de la salida después de haber generado y no ejecutar una migración de 'prueba'
fuente
Este comando enumerará todas las migraciones con su estado (
UP
oDOWN
)Carriles 3 y 4
Carriles 5
fuente
rake db:version
logrará esto en Rails 2.fuente
Esto funciona para rieles 5.2
fuente
Pruebe rake -h (ayuda) y eche un vistazo a rake -n (= rake --dry-run). Entonces, probablemente algo así como rake -n db: migrate debería darte lo que quieres.
fuente
Puede que no sea exactamente lo que está pidiendo OP, pero si solo necesita verificar rápidamente si hay alguna migración pendiente para su uso en una tarea de rastrillo, sin recurrir a
rake db: migrate: estado | grep down (podría no funcionar si estás en Windows)
ActiveRecord :: Migration.check_pending! (plantea ActiveRecord :: PendingMigrationError que necesita rescatar)
puedes usar needs_migration? Método: https://apidock.com/rails/v4.0.2/ActiveRecord/Migrator/needs_migration%3F/class
fuente
ActiveRecord::Migrator.needs_migration?
en Rails 5.1Siguiente comando para verificar el estado de la migración:
O
cuando ejecute su servidor, mostrará un mensaje para ejecutar primero su migración pendiente.
fuente
Si desea ver cuánta migración se realiza o está pendiente, puede ver el siguiente comando.
Más en este enlace: Rails Active Record Migration
fuente
Si necesita un bash one-liner para determinar si ejecutar una migración o no (por ejemplo, migrar solo en un comando de fase de lanzamiento de Heroku cuando hay una migración pendiente), esto funciona:
fuente