mysql - Sequelize raw select 查询无法访问表
问题描述
我有以下 Sequelize 模型:
/* jshint indent: 2 */
const Sequelize = require("sequelize");
const db = require('../../sequelize/index.js');
module.exports = function (sequelize, DataTypes) {
const Document = sequelize.define(
"Document",
{
id: {
type: DataTypes.INTEGER,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
documentNumber: {
type: DataTypes.TEXT,
allowNull: true,
},
title: {
type: DataTypes.STRING,
allowNull: false,
},
confidential: {
type: DataTypes.BOOLEAN,
allowNull: true,
defaultValue: false
},
description: {
type: DataTypes.STRING,
allowNull: true,
},
createdBy: {
type: DataTypes.TEXT,
allowNull: false,
},
state: {
type: DataTypes.ENUM({ values: ['DRAFT', 'UNDERREVIEW', 'APPROVED', 'OBSOLETE'] }),
allowNull: false,
},
createdAt: {
allowNull: true,
type: DataTypes.BIGINT,
field: 'created_at'
},
updatedAt: {
allowNull: true,
type: DataTypes.BIGINT,
field: 'updated_at'
}
},
{
sequelize,
tableName: "document",
schema: 'dms',
freezeTableName: true,
underscored: true,
alter: true,
hooks: {
beforeCreate: (record, options) => {
record.dataValues.createdAt = Math.floor(Date.now() / 1000);
record.dataValues.updatedAt = Math.floor(Date.now() / 1000);
},
beforeUpdate: (record, options) => {
record.dataValues.updatedAt = Math.floor(Date.now() / 1000);
},
},
}
);
return Document;
};
当我使用 sequelize.sync 时,sequelize 在数据库中创建一个表作为“dms.document”。
我正在使用以下代码在 nodejs 中动态查询表。
let tableName = optionJson.tableName;
let columnName = optionJson.valueColumn;
let resultSet = await db.sequelize.query(`select ${columnName} from ${tableName}`, {
type: QueryTypes.SELECT,
raw: true
});
return resultSet;
当我执行代码时,我收到以下错误:
code: 'ER_NO_SUCH_TABLE',
errno: 1146,
sqlState: '42S02',
sqlMessage: "Table 'dms.document' doesn't exist",
sql: 'select id from document',
parameters: undefined
},
sql: 'select id from document',
我尝试了 dms.document 和 document,在这两种情况下我都收到了上述错误。可能是什么问题?
解决方案
推荐阅读
- asp.net - ASP.NET MVC:在两个不同的身份下运行
- excel - 从 Excel 将单元格值添加到 Outlook 电子邮件
- mfc - 将 WS_EX_CONTEXTHELP 与 WS_MAXIMIZEBOX 或 WS_MINIMIZEBOX 样式一起使用
- google-cloud-platform - 无法将 GPU 附加到 Google Cloud 实例
- c# - 从登录调用 MVC View
- django-templates - Django:无法剪切数组
- neural-network - Caffe - 网络不学习
- excel - 如何在vba中声明从x1到xi等一系列变量
- jenkins - jenkins 可以过期多分支作业吗?
- python - 使用 :symbols 从 Python 生成 Clojure EDN