我在數據庫中有一個表,現在我想向它添加兩個新列。 我已經使用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