web-dev-qa-db-fra.com

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

Je souhaite 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 table.

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

76
ideaboxer

Vous pouvez passer une option de journalisation lors de l’initialisation de Sequelize, qui peut être une fonction ou 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 })
121
Jan Aagaard Meier

Si vous voulez regarder la suite d'une commande, vous pouvez l'écouter et attacher une fonction à print the sql.

Découvrez cet exemple:

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

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 séquençage (4) si vous voulez avoir le résultat pour une seule commande:

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

21
Adlen Afane