我在 Nodejs 中使用 SEQUELIZE 在 PostgreSQL 数据库中创建了一个 Account 表。我使用 npx 命令来创建表。
$ npx sequelize db:create
$ npx sequelize db:migrate
默认情况下,表是用双引号创建的。比如我想查看Account表中的条目,sql命令如下:SELECT * FROM "Account";
我想从表名中删除双引号,即SELECT * FROM Account;
在 Sequelize Manual 中,我找到了一个选项 (options.quoteIdentifiers),它指出“设置为 false 以使 Postgres 上的表名和属性不区分大小写并跳过对它们的双引号。”当我在代码中应用此选项时,仍然使用双引号创建 Account 表。我不确定我是否犯了任何错误。请在下面检查我的代码。提前致谢。
var sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD,
options.quoteIdentifiers = false,
{
host: dbConfig.HOST,
dialect: dbConfig.dialect,
pool: {
max: dbConfig.pool.max,
min: dbConfig.pool.min,
acquire: dbConfig.pool.acquire,
idle: dbConfig.pool.idle
}
},
);
module.exports = (sequelize, DataTypes) => {
const Account = sequelize.define('Account', {
epprojectname: DataTypes.STRING,
username: DataTypes.STRING,
projectid: DataTypes.STRING,
vendorparameters: DataTypes.STRING,
credentials: DataTypes.STRING,
author: DataTypes.STRING,
localnumber: DataTypes.STRING,
loginid: DataTypes.INTEGER,
}, {
freezeTableName: true,
},
);
最佳答案
您使用了“=”而不是“:”。您可以用冒号替换等号并重试
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
host: dbConfig.HOST,
dialect: dbConfig.dialect,
operatorsAliases: false,
quoteIdentifiers: false,
freezeTableName: true,
pool: {
max: dbConfig.pool.max,
min: dbConfig.pool.min,
acquire: dbConfig.pool.acquire,
idle: dbConfig.pool.idle
}
});
关于node.js - 使用 SEQUELIZE Nodejs 从表名中删除双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62535100/