Existe-t-il une tâche de râteau qui montre les migrations en attente dans une application rails?
ruby-on-rails
rails-migrations
Lecture seulement
la source
la source
Don't know how to build task 'db:migrate:status'
sur les rails 3.2.8rake -T
mais les autres le font?up
signifie que la migration a été exécutée.down
signifie que la migration n'a pas été exécutée.Il y a
rake db:abort_if_pending_migrations
(au moins dans Rails 2.3.3, je ne sais pas quand il a été introduit). La description dit «Génère une erreur s'il y a des migrations en attente». Cela semble être davantage utilisé comme prérequis pour d'autres tâches, mais je suppose que vous pourriez l'utiliser à vos fins.EDIT: Voici un exemple de la sortie après avoir juste généré et non exécuté une migration 'test'
la source
Cette commande listera toutes les migrations avec leur statut (
UP
ouDOWN
)Rails 3 et 4
Rails 5
la source
rake db:version
accomplira cela sur Rails 2.la source
Cela fonctionne pour les rails 5.2
la source
Essayez rake -h (aide) et jetez un œil à rake -n (= rake --dry-run). Donc, probablement quelque chose comme rake -n db: migrate devrait vous apporter ce que vous voulez.
la source
Ce n'est peut-être pas tout à fait ce que OP demande, mais si vous avez juste besoin de vérifier rapidement si des migrations sont en attente pour une utilisation dans une tâche rake, sans recourir à
rake db: migrer: état | grep down (peut ne pas fonctionner si vous êtes sous Windows)
ActiveRecord :: Migration.check_pending! (déclenche ActiveRecord :: PendingMigrationError que vous devez récupérer)
vous pouvez utiliser needs_migration? méthode: https://apidock.com/rails/v4.0.2/ActiveRecord/Migrator/needs_migration%3F/class
la source
ActiveRecord::Migrator.needs_migration?
dans Rails 5.1Commande suivante pour vérifier l'état de la migration:
OU
lorsque vous exécutez votre serveur, il affichera un message pour exécuter d'abord votre migration en attente.
la source
Si vous voulez voir combien de migration est effectuée ou en attente, vous pouvez voir en utilisant la commande ci-dessous.
En savoir plus sur ce lien: Rails Active Record Migration
la source
Si vous avez besoin d'un bash one-liner pour déterminer s'il faut exécuter une migration ou non (par exemple, migrer uniquement dans une commande de phase de publication Heroku lorsqu'il y a une migration en attente), cela fonctionne:
la source