【问题标题】:Remove double quotes from a Table Name using SEQUELIZE Nodejs使用 SEQUELIZE Nodejs 从表名中删除双引号
【发布时间】:2020-06-23 12:48:34
【问题描述】:

我使用 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,
  },
  );

【问题讨论】:

  • [options.quoteIdentifiers=true] 用于不区分大小写,这意味着"Account""account" 相同,它不会解决您的问题。请分享您使用" " 创建表的数据库架构

标签: node.js postgresql sequelize.js


【解决方案1】:

您使用了“=”而不是“:”。您可以将等号替换为冒号,然后重试

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
  }
});

【讨论】:

    猜你喜欢
    • 2018-08-02
    • 1970-01-01
    • 2018-12-23
    • 2021-10-28
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2022-12-23
    • 1970-01-01
    相关资源
    最近更新 更多