203 votes

Vérifier si une table existe dans les Rails

J'ai une tâche qui ne fonctionnera pas à moins qu'une table existe. Je travaille avec plus de 20 ingénieurs sur un site Web, je veux donc m'assurer qu'ils ont migré la table avant de pouvoir effectuer une tâche de rake qui remplira cette table respective.

Est-ce que AR a une méthode telle que Table.exists ? Comment puis-je m'assurer qu'ils ont migré la table avec succès?

343voto

CaptainPete Points 2991

Dans les rails 2, 3 et 4:

 # Gives you a listing
ActiveRecord::Base.connection.tables
# Checks for existence of kittens table (Kitten model)
ActiveRecord::Base.connection.table_exists? 'kittens'

# Tells you all migrations run
ActiveRecord::Migrator.get_all_versions
# Tells you the current schema version
ActiveRecord::Migrator.current_version
 

63voto

alexey_the_cat Points 391

même si la table n'existe pas:

modèle Kitten , table attendue kittens rails 3:

Kitten.table_exists? # => faux

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X