Mat*_*att 20 javascript postgresql orm database-schema sequelize.js
我们正在使用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;
};
Run Code Online (Sandbox Code Playgroud)
这将部署到生产环境并使用同步到数据库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;
};
Run Code Online (Sandbox Code Playgroud)
但是,部署到生产时sequelize.sync
不会添加此新参数.这是因为sync
:
CREATE TABLE IF NOT EXISTS
如果表存在,实际上并不会更新架构.这在他们的文档中有说明.
唯一的选择似乎是{ force: true }
,但这对于生产数据库来说是不可行的.
有人知道如何在需要更改时正确更新架构吗?
Dan*_*ohn 24
您想要实施Sequelize迁移:
http://docs.sequelizejs.com/manual/tutorial/migrations.html
这些将使您能够在已知状态之间转换开发人员,登台和生产数据库.
更快的方法是使用{alter: true}
选项。
参考: https: //sequelize.org/master/class/lib/sequelize.js~Sequelize.html#instance-method-sync
归档时间: |
|
查看次数: |
15460 次 |
最近记录: |