web-dev-qa-db-fra.com

Tableau des migrations de schéma

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?

32
tommyd456

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 :)

57
David Lowenfels

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.

29
Peter Piper

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.

10
steakchaser

Je ne sais pas pourquoi vous voulez faire ça, mais c'est parti:

ActiveRecord :: Migrator.get_all_versions

7
Agustin

pour obtenir la dernière version:

ActiveRecord::SchemaMigration.last.version

ou toutes les versions:

ActiveRecord::SchemaMigration.all.map(&:version)
0
localhostdotdev