Comment puis-je voir le SQL généré par Sequelize.js?

Je veux voir les commandes SQL envoyées au serveur PostgreSQL, car je dois vérifier si elles sont correctes. En particulier, je suis intéressé par les commandes de création de tables.

Par exemple, ActiveRecord (Ruby) imprime ses instructions SQL sur la sortie standard. Est-ce possible avec Node.js / ActionHero.js et Sequelize.js également?

Vous pouvez passer une option de journalisation lors de l’initialisation de la suite, qui peut être une fonction ou une console.log

var sequelize = new Sequelize('database', 'username', 'password', { logging: console.log logging: function (str) { // do your own logging } }); 

Vous pouvez également transmettre une option de journalisation à .sync si vous souhaitez uniquement afficher les requêtes de création de table

 sequelize.sync({ logging: console.log }) 

Si vous voulez regarder la suite pour une commande, vous pouvez l’écouter et associer une fonction au fichier print.

Découvrez cet exemple:

 User.find(1).on('sql', console.log).then(function(user) { // do whatever you want with the user here 

Comme indiqué dans le journal Error: Please note that find* was refactored and uses only one options object from now on. . Pour la dernière version de Sequelize (4), si vous voulez avoir le résultat pour une seule commande:

User.findAll({where: {...}, logging: console.log})