Postgresql 使用Sequelize在生产环境中更改架构而不丢失数据

Postgresql 使用Sequelize在生产环境中更改架构而不丢失数据,postgresql,sequelize.js,Postgresql,Sequelize.js,我正在使用作为PostgreSQL数据库的ORM,需要一些关于在不丢失数据的情况下在生产中更改模式的指针: // model usage var User = require('./user') var Page = require('./page') var Theme = require('./theme') User.sync({ force: true }) Page.sync({ force: true }) Theme.sync({ force: tru

我正在使用作为PostgreSQL数据库的ORM,需要一些关于在不丢失数据的情况下在生产中更改模式的指针:

// model usage
var User = require('./user')
var Page = require('./page')
var Theme = require('./theme')

User.sync({
    force: true
})

Page.sync({
    force: true
})

Theme.sync({
    force: true
})
在开发过程中,我每次重新启动API服务器时都会丢失数据,因为我有
force:true
。这是可以管理的,因为这是开发。 但我显然不希望在我的生产环境中出现这种情况,但我如何解决这个问题:

  • 我有一个用户的模式:姓名、年龄等
  • 用户注册
  • 然后我决定我还想捕获“电子邮件”并将其保存在用户表中
  • 未找到“email”列,因为生产中的
    force:false
  • 如何确保我的生产模式是最新的?我可以在不丢失数据的情况下进行这些模式更改吗


    我来自Mongo世界,在那里这不是一个问题,任何建议都很感激

    在SQL世界中,迁移是必由之路。 您需要编写迁移以在表中添加电子邮件列

    如果您使用的是Sequelize>=2.0.0,则使用它自己的迁移库: