我在数据库中有一张表,现在我想向其中添加两列。我使用 MYSQL命令行
修改了表并将新添加的列添加到了 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
});
在这个表中,obv_ra
和obv_dec
已经被添加了..!
这是插入查询语句:
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})
之后,执行结果如下:
执行 (default): 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;
但是实际执行的查询语句是:
执行 (default): INSERT INTO observation_details (obv_id,obv_source,obv_waveband,prpsl_id) VALUES (NULL,dgf,2,19);
是否有不使用Migrations
也能解决这个问题的方法?
sync
中看到它。使用前要小心备份数据库,因为force
会删除表。 - Andrey Popovforce:false
,有没有任何方法可以在不删除表的情况下完成此操作? - Abhishek