【发布时间】:2017-06-26 13:36:05
【问题描述】:
我正在使用 sequelize 在 Redshift 中进行查询。
但是 Redshift 对表列名不区分大小写,因此所有表名都是小写的。 并且续集模型不区分大小写。所以当我查询 findById 时,它会执行这个查询:
SELECT "id", "userId", "summonerId", "name", "profileIconId", "summonerLevel", "revisionDate", "createdAt", "updatedAt" FROM "Lol" AS "Lol" WHERE "Lol"."id" = '463d118c-2139-4679-8cdb-d07249bd7777222';
如果我在 Redshift 中执行查询,它就可以工作,但是 sequelize 只带回 id 和 name 列名,因为只有模型中的名称是小写的。
那么我怎样才能使 sequelize 不区分大小写呢?我尝试了field 选项,但不起作用。
所以我的模型是:
lol = sequelize.define('Lol', {
id: {
type: Sequelize.STRING,
allowNull: false,
unique: true,
primaryKey: true,
field: 'id'
},
userId: {
type: Sequelize.STRING,
allowNull: false,
field: 'userid'
},
summonerId: {
type: Sequelize.INTEGER,
allowNull: false,
field: 'summonerid'
},
name: {
type: Sequelize.STRING,
allowNull: false,
field: 'name'
},
profileIconId: {
type: Sequelize.INTEGER,
allowNull: false,
field: 'profileiconid'
},
summonerLevel: {
type: Sequelize.INTEGER,
allowNull: false,
field: 'summonerlevel'
},
revisionDate: {
type: Sequelize.BIGINT,
allowNull: false,
field: 'revisiondate'
},
createdAt: {
type: Sequelize.DATE,
allowNull: false,
field: 'createdat'
},
updatedAt: {
type: Sequelize.DATE,
allowNull: false,
field: 'updatedat'
}
}, {
freezeTableName: true,
tableName: 'Lol'
})
【问题讨论】:
标签: postgresql sequelize.js amazon-redshift