我在数据库中有一个表,现在我想向它添加两个新列。 我已经使用MYSQL cmd line
更改了表格,并且还将新添加的列添加到了Sequelize
模型中。在现有表中添加新列的续集
但是,当我触发插入查询时,它仍然激发查询与先前的字段,并没有将新添加的列添加到它。
这里是我的数据模型:
var Observation = sequelize.define('observation_details', {
obv_id: {
type: Sequelize.INTEGER,
primaryKey: true
},
obv_source: Sequelize.STRING,
obv_waveband: Sequelize.INTEGER,
prpsl_id: Sequelize.INTEGER,
obv_ra: Sequelize.DOUBLE, //newly added column
obv_dec: Sequelize.DOUBLE // newly added column
}, {
tableName: 'observation_details',
timestamps: false
});
这里已加..!
这是插入查询:
Observation.create({
obv_source: req.body.obvDetails[i].source,
obv_waveband: req.body.obvDetails[i].waveband,
prpsl_id: proposalId,
obv_ra: req.body.obvDetails[i].ra,
obv_dec: req.body.obvDetails[i].dec
})
加入Sequelize.sync({force:false})
结果:
执行(默认):CREATE TABLE IF NOT EXISTS observation_details(obv_id INTEGER,obv_source VARCHAR(255),obv_waveband INTEGER,prpsl_id INTEGER,obv_ra DOUBLE PRECISION,obv_dec DOUBLE PRECISION,PRIMARY KEY(obv_id))ENGINE = InnoDB;
但仍然打响了查询:
执行(默认):INSERT INTO observation_details(obv_id,obv_source,obv_waveband,prpsl_id)VALUES(NULL,DGF,2,19);
有什么办法可以在不使用Migrations
的情况下解决这个问题吗?
使用[sync](http://docs.sequelizejs.com/en/latest/docs/schema/#syncing) - 可能有帮助。也许Model和db有区别 - 你会用'sync'来看它。在使用它之前要小心并备份数据库,因为'force'会使表格丢失。 –
如果我设置'force:false',反正有这个可以在不丢表的情况下完成 – Abhishek
@AndreyPopov请看我的编辑 – Abhishek