私たちは orm Sequelize.jsを使用しており、モデルを次のように定義しています。
module.exports = function(sequelize, DataTypes) {
var Source = sequelize.define('Source', {
name: {
type: DataTypes.STRING,
allowNull: false,
unique: true
}
}, {
paranoid: true
});
return Source;
};
これは本番環境にデプロイされ、 を使用してデータベースに同期されますsequelize.sync
。次のステップでは、パラメーターを追加します。
module.exports = function(sequelize, DataTypes) {
var Source = sequelize.define('Source', {
name: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
location: {
type: DataTypes.STRING
}
}, {
paranoid: true
});
return Source;
};
ただし、本番環境にデプロイする場合、sequelize.sync
この新しいパラメーターは追加されません。これは、次のことをsync
行うためです。
CREATE TABLE IF NOT EXISTS
テーブルが存在する場合、実際にはスキーマを更新しません。これは、ドキュメントに記載されています。
唯一のオプションは to のようですが{ force: true }
、これは本番データベースには適していません。
変更が必要なときにスキーマを適切に更新する方法を知っている人はいますか?