Как я могу увидеть SQL, созданный Sequelize.js?
Я хочу видеть команды SQL, которые отправляются на сервер PostgreSQL, потому что мне нужно проверить, правильны ли они. В частности, меня интересуют команды создания таблицы.
Например, ActiveRecord (Ruby) выводит свои SQL-запросы на стандартный вывод. Возможно ли это с помощью Node.js/ActionHero.js и Sequelize.js?
Ответы
Ответ 1
Вы можете передать параметр регистрации при инициализации sequelize, который может быть либо функцией, либо console.log
var sequelize = new Sequelize('database', 'username', 'password', {
logging: console.log
logging: function (str) {
// do your own logging
}
});
Вы также можете передать параметр ведения журнала на .sync, если хотите просмотреть запросы на создание таблицы
sequelize.sync({ logging: console.log })
Ответ 2
Если вы хотите посмотреть на sequelize для одной команды, вы можете прослушать ее и прикрепить функцию к печати sql.
Посмотрите этот пример:
User.find(1).on('sql', console.log).then(function(user) {
// do whatever you want with the user here
Ответ 3
Как указано в log Error: Please note that find* was refactored and uses only one options object from now on.
. Для последней версии sequelize, если вы хотите получить результат только для одной команды:
User.findAll({where: {...}, logging: console.log})