在现有的表中添加新的列
我有一个数据库中的表,现在我想添加两个新的列。 我使用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 });
这里在表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})
结果在:
执行(默认):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
?
我想如果你愿意丢失所有的数据,你可以删除并重新从头开始。
你也可以在创build之前做一些奇特的逻辑来检查磁盘上的表的模式,以及你期望从模型中得到的结果,并根据需要添加/删除列,但是在那一点上,你只是重新实现了一个不太灵活的版本Migrations
。 除非有令人信服的理由,否则您应该使用Migrations
。