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