Je souhaite appeler une tâche thor auprès d'une migration. Avec râteau Je peux écrireExécution de la tâche Thor à partir de la migration
def self.up
Rake::Task["db:rollback"].invoke
end
Mais comment puis-je faire avec thor? (La commande thor est « thor db: rollback ») (thor db:rollback
est pas une option, je veux donc voir la sortie et le script doit abandonner sur les erreurs)
MISE À JOUR: La migration est appelée depuis la Thorfile
Il ressemble à ceci:
require 'active_record'
class Db < Thor
desc "migrate", "description ..."
def migrate
ActiveRecord::Migrator.migrate(MIGRATIONS_PATH)
end
end
Lorsque la migration est exécutée une erreur est soulevée par DB.new. "constante non initialisée CreateUsers :: Db". Il semble qu'il essaie de trouver la classe Db thor dans la migration elle-même. (J'ai mis à jour ma question) – ipsum
Assurez-vous que la classe est chargée, et assurez-vous que vous utilisez la bonne capitalisation. 'Db' n'est pas la même chose que' DB', et vice versa. Ma réponse était pour le cas général de la façon d'invoquer les tâches de Thor, pas votre cas spécifique, alors assurez-vous que vous avez les bons noms et que la classe que vous voulez utiliser est chargée. – Theo