Est-il possible de sortir les scripts de changement SQL que 'rake db: migrate' produit?Est-il possible de sortir les scripts de changement SQL que 'rake db: migrate' produit?
Répondre
Vous pouvez créer une tâche de râteau dans lib/tasks/
:
namespace :db do
desc 'Make migration with output'
task(:migrate_with_sql => :environment) do
ActiveRecord::Base.logger = Logger.new(STDOUT)
Rake::Task['db:migrate'].invoke
end
end
appeler ensuite rake db:migrate_with_sql
pour se connecter à la migration.
'ActiveRecord :: Base.logger = Logger.new (STDOUT)' est la magie, l'exécution d'une migration particulière implique simplement la configuration préalable de l'enregistreur :) –
bâtiment sur @qarol mais encore plus cool, ajoutez cette tâche Rake à un de vos fichiers Rake:
task :log => :environment do
ActiveRecord::Base.logger = Logger.new(STDOUT)
end
Ensuite, vous pouvez appeler TOUT tâche Rake et que la sortie connecté:
rake log db:migrate
Vous pouvez utiliser ceci: ActionMailer :: Base .logger = ActiveRecord :: Base.logger = Logger.new (STDOUT) pour obtenir la sortie mailer aussi. – Josh
Cela a fonctionné très bien et est beaucoup plus générique. Cela devrait être la réponse acceptée. –
D'accord, c'est un conseil fantastique. – bonh
La sortie SQL est capturée dans votre fichier journal d'environnement, par exemple development.log
- 1. rake db: migrate erreur de syntaxe
- 2. rake db: migrate produit une erreur "rake avorté! Impossible à trouver"
- 3. commande Heroku: Heroku rake db: migrate échoue
- 4. rake db: migrate -> niveau de la pile trop profond
- 5. rake db: migrate échoue: à la recherche de RMagick - pourquoi?
- 6. rake db: migrate ne détecte pas la nouvelle migration?
- 7. Heroku rake db: migrate échoue - Tâches/rails manquants
- 8. Rails: rake db: migrate * très * lent sur Oracle
- 9. Raccourci pour rake db: migrate: bas pour ruby-on-rails
- 10. rake db: migrate ne fonctionne pas pour moi
- 11. rubis sur des rails rake db: migrate erreur
- 12. "getaddrinfo: nom ou service inconnu" lorsque rake db: migrate
- 13. Pourquoi l'initialisation de la syntaxe d'exécution [rake db: migrate] vérifie-t-elle les tâches rake dans le répertoire lib/tasks?
- 14. rake db: migrer correctement toutes les migrations
- 15. L'application Can Rails et rake db: migrate utilisent des informations d'identification de base de données différentes?
- 16. Pourquoi schema.rb n'est pas généré (correctement) lors de l'exécution de rake db: migrate?
- 17. Rails: rake db: migrate n'est pas généré dans la fenêtre de la console de script/serveur
- 18. Exécution rake migrate donne l'erreur Mysql schema_migrations.frm
- 19. Rake db: migration abandonnée
- 20. Db migrate - Hibernate/JPA - hbm2ddl - outils diff
- 21. rake db: migrate (+ desert) donne "une méthode non définie` abstract_class? ' pour Object: Class "
- 22. rake db: migrate lance méthode non définie 'symbolize_keys' pour nul: NilClass
- 23. rake db: migrate donne une configuration variable @@ classe non initialisée dans l'erreur Rails
- 24. db: auto: migrate dans Rails 3
- 25. Est-il possible d'exécuter un fichier SQL uniquement à partir d'un "rake db: create"?
- 26. rake db: créer - problèmes de classement
- 27. "rake db: seed" aucune erreur de méthode
- 28. rien ne se passe quand je cours rake db: migrer
- 29. Erreur de connexion pour rake db SQLServer: migrer
- 30. comment utiliser rake db: migrer
Vous devriez également jeter un coup d'oeil à ce [article de blog] (http://eewang.github.io/blog/2013/07/29/how-to-use-rake-tasks-to-generate -migration-sql /) –