cod*_*bot 6 node.js sequelize.js
我正在尝试在我的节点项目中设置续集,现在我有
//sequelize init
const { DataTypes } = Sequelize;
const sequelize = new Sequelize({
database: database,
username: user,
host: server,
password: password,
dialect: 'mssql',
dialectOptions: {
options: {
useUTC: true,
dateFirst: 1,
}
},
define:{
timestamps:false,
paranoid:false,
freezeTableName: true
}
});
//and my Model
const User= sequelize.define('User', {
// attributes
id: {
field:'Id',
type: Sequelize.INTEGER,
allowNull: false,
primaryKey: true
} ,
startTime: {
field:'startTime',
type: Sequelize.DATE
}
});
Run Code Online (Sandbox Code Playgroud)
我尝试设置version:true以启用乐观锁定
我把它放在模型中
const Vessel = sequelize.define('FDMData', {
// attributes
id: {
field:'vesselId',
type: Sequelize.INTEGER,
allowNull: false,
primaryKey: true
} ,
startTime: {
field:'startTime',
type: Sequelize.DATE
}
},{
version:true
}
);
Run Code Online (Sandbox Code Playgroud)
我得到 Unhandled rejection SequelizeDatabaseError: Invalid column name 'version'.
我还尝试在初始化时将其设置为全局
const { DataTypes } = Sequelize;
const sequelize = new Sequelize({
database: database,
username: user,
host: server,
password: password,
dialect: 'mssql',
dialectOptions: {
options: {
useUTC: true,
dateFirst: 1,
}
},
define:{
timestamps:false,
paranoid:false,
freezeTableName: true,
version: true
}
});
Run Code Online (Sandbox Code Playgroud)
再一次,我得到 Unhandled rejection SequelizeDatabaseError: Invalid column name 'version'.
我错过了什么?我怎样才能解决这个问题?
谢谢
当您设置version: true并手动创建数据库结构时,sequelize 期望找到version表上命名的列:因此version INTEGER NOT NULL DEFAULT 0向表中添加一列。您还可以根据需要命名版本控制列,只需传递一个字符串即可version: "myVersionColumn"
如果让sequelize处理数据库结构的创建,它会为FDMData表生成一个DDL,如下所示
CREATE TABLE IF NOT EXISTS FDMData (
vesselId INTEGER NOT NULL ,
startTime DATETIME,
version INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY (vesselId)
)
Run Code Online (Sandbox Code Playgroud)
并且您的代码工作得很好。例如
Vessel.sync().then(model=> {
// or sequelize.sync()
console.log(model)
}).catch(error=> {
console.log(error)
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1125 次 |
| 最近记录: |