Dans mon application Rails 4, je voudrais réduire mes fichiers de migration en un seul grand fichier (similaire à schema.rb) car il est temps de faire un peu de ménage, mais je ne sais pas comment y accéder. la table de la base de données qui stocke les données de migration afin que lorsque j'exécute une migration, je ne reçoive aucune erreur/conflit.
Question Comment puis-je accéder et supprimer les données dans le tableau qui stocke les données de migration?
pour le plaisir, vous pouvez également les manipuler dans la console en créant une classe de modèle pour eux ...
class SchemaMigration < ActiveRecord::Base; self.primary_key = :version; end
alors vous pouvez faire SchemaMigration.all, SchemaMigration.last.delete, etc.
Vraiment juste un substitut à l'utilisation de SQL, et il est très rare que vous ayez besoin de jouer à ce bas niveau ... généralement une mauvaise idée mais cool de voir comment le faire :)
Une autre solution pourrait être d'y accéder via:
ActiveRecord::SchemaMigration
La réponse donnée par David n'a pas fonctionné dans mon contexte.
Le schema_migrations
table contient les numéros de révision; le dernier enregistrement étant la migration la plus récemment exécutée. Vous pouvez simplement manipuler ces enregistrements manuellement.
Je ne sais pas pourquoi vous voulez faire ça, mais c'est parti:
ActiveRecord :: Migrator.get_all_versions
pour obtenir la dernière version:
ActiveRecord::SchemaMigration.last.version
ou toutes les versions:
ActiveRecord::SchemaMigration.all.map(&:version)