gpt4 book ai didi

javascript - 如何在 sequelize v6 中删除自动创建的列 ID?

转载 作者:行者123 更新时间:2023-12-03 22:29:59 25 4
gpt4 key购买 nike

我正在尝试设置一个连接到我的 postgres 数据库中的 VIEW 的模型,以便我可以从中读取,但是每次我尝试从 View 中获取数据时,我都会收到一个错误,指出列“id”不存在。创建模型时,Sequelize 会自动创建一个 id 整数列作为主键,但由于我的 View 没有 id 列,因此会引发错误。我已经看到如何使用 sequelize.define() 删除 id 列。但是我使用的是基于类的模型,我不知道如何以这种方式删除属性。任何想法都非常感谢!谢谢!。使用 sequelize 版本 6
我尝试在底部使用 removeAttr 但这没有用。

'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class Prjt_source_percent_each extends Model {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
static associate(models) {
// define association here
}
};
Prjt_source_percent_each.init({
project_id: DataTypes.STRING,
phase: DataTypes.STRING,
commodity: DataTypes.STRING,
comm_type: DataTypes.STRING,
source_energy_baseline: DataTypes.REAL,
source_energy_savings: DataTypes.REAL,
savings_percent: DataTypes.DOUBLE
}, {
sequelize,
modelName: 'Prjt_source_percent_each',
tableName: 'prjt_source_percent_each',
removeAttr: 'id'
});
return Prjt_source_percent_each;
};

最佳答案

你可以尝试使用:

Prjt_source_percent_each.removeAttribute('id');
在返回模型定义之前?更多细节: https://sequelize.org/master/class/lib/model.js~Model.html#static-method-removeAttribute
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class Prjt_source_percent_each extends Model {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
static associate(models) {
// define association here
}
};
Prjt_source_percent_each.init({
project_id: DataTypes.STRING,
phase: DataTypes.STRING,
commodity: DataTypes.STRING,
comm_type: DataTypes.STRING,
source_energy_baseline: DataTypes.REAL,
source_energy_savings: DataTypes.REAL,
savings_percent: DataTypes.DOUBLE
}, {
sequelize,
modelName: 'Prjt_source_percent_each',
tableName: 'prjt_source_percent_each',
});
// remove the attribute
// https://sequelize.org/master/class/lib/model.js~Model.html#static-method-removeAttribute
Prjt_source_percent_each.removeAttribute('id');
return Prjt_source_percent_each;
};

关于javascript - 如何在 sequelize v6 中删除自动创建的列 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67894056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com