Я использую postgres
в качестве диалекта sequelize
. Имена идентификаторов и ключевых слов в PostgreSQL не чувствительны к регистру. Подробнее см. https://www.postgresql.org/docs/9.6/sql-syntax-lexical.html, Вам необходимо добавить двойную кавычку для имени таблицы.
Например, index.ts
import { sequelize } from '../../db';
import Sequelize, { Model } from 'sequelize';
class FrameworkPage extends Model {}
FrameworkPage.init({}, { sequelize, modelName: 'frameworkPage' });
(async function test() {
try {
// create tables
await sequelize.sync({ force: true });
// seed
await FrameworkPage.create({});
// test
const req = { body: { data: 'select * from "frameworkPage"' } };
const result = await sequelize.query(req.body.data, { type: Sequelize.QueryTypes.SELECT });
console.log(result);
} catch (error) {
console.log(error);
} finally {
await sequelize.close();
}
})();
Результаты выполнения:
Executing (default): DROP TABLE IF EXISTS "frameworkPage" CASCADE;
Executing (default): DROP TABLE IF EXISTS "frameworkPage" CASCADE;
Executing (default): CREATE TABLE IF NOT EXISTS "frameworkPage" ("id" SERIAL , PRIMARY KEY ("id"));
Executing (default): SELECT i.relname AS name, ix.indisprimary AS primary, ix.indisunique AS unique, ix.indkey AS indkey, array_agg(a.attnum) as column_indexes, array_agg(a.attname) AS column_names, pg_get_indexdef(ix.indexrelid) AS definition FROM pg_class t, pg_class i, pg_index ix, pg_attribute a WHERE t.oid = ix.indrelid AND i.oid = ix.indexrelid AND a.attrelid = t.oid AND t.relkind = 'r' and t.relname = 'frameworkPage' GROUP BY i.relname, ix.indexrelid, ix.indisprimary, ix.indisunique, ix.indkey ORDER BY i.relname;
Executing (default): INSERT INTO "frameworkPage" ("id") VALUES (DEFAULT) RETURNING *;
Executing (default): select * from "frameworkPage"
[ { id: 1 } ]