Migration Rails: meilleur moyen de récupérer la version de migration actuelle

Existe-t-il un bon moyen de récupérer le numéro de version de la migration?

Je dois implémenter une méthode dans un modèle qui se comporte différemment sur et au-delà d’une version de migration spécifique.

J’ai trouvé assumer_migrated_upto_version dans l’adaptateur de connexion récupère la version de la firebase database mais n’en trouve pas d’autres.


Arrière-plan: j’essaie de supprimer deux colonnes de la table A, de les déplacer dans la table B et d’append une association à la table B à partir de la table A.

Pendant ce changement, je dois accéder à ces deux colonnes. mais après cela, je veux append une méthode de proxy pour ces colonnes pour la compatibilité.

> ActiveRecord::Migrator.current_version (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" => 20120110085802 > ActiveRecord::Migrator.get_all_versions (0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" => [20111114121610, 20111115091108, ... 

Il existe un moyen bien plus pratique: rake db:migrate:status

 up 20120530222941 Create shenanigans up 20120613030015 *** NO FILE *** 

Indique que j’ai supprimé mon dernier fichier de migration.

Ou plus simplement:

 > rake db:version Current version: 20120613030015 

Si vous ne voulez pas faire cela sans charger votre application, vous pouvez créer un script comme celui-ci:

 #!/usr/bin/env ruby root = File.expand_path("../..", __FILE__) lines = `ls #{root}/db/migrate` puts lines.split("\n").last.split(" ").last.split("_").first 

Notez que la ligne root est parce que mon script est dans un bin