Sequelize + Squel. js: DatabaseError [SequelizeDatabaseError]: столбец X отношения Y не существует - PullRequest
0 голосов
/ 07 января 2020

Я использую squel для создания запроса PostgresSQL и sequelize для обеспечения соединения с базой данных и выполнения запроса.

const Sequelize = require('sequelize');
const squel = require('squel').useFlavour('postgres')

const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/config/config.json')[env];
let sequelize = new Sequelize(config.database, config.username, config.password, config);

const payload = {
    myId: 'foobar',
    timestamp: Date.now()
}

// Build the SQL query
let q = squel.insert()
            .into('animals')
            .setFields(payload)
            .toString();
console.log(q)

// Execute the SQL query
sequelize
    .query(q, { type: Sequelize.QueryTypes.INSERT })
    .catch(e => console.log(e))

Однако выполнение приведенного выше кода дает ошибка:

DatabaseError [SequelizeDatabaseError]: столбец "myid" отношения "animals" не существует

Сгенерированный оператор SQL

INSERT INTO animals (myId, timestamp) VALUES ('foobar', 1578360166225)

Кажется, что добавление кавычек для изменения имен столбцов, таких как myId в "myId", будет работать. Если это правильно, почему Squel. js не форматирует оператор SQL таким образом?

...