Node.js,Express,MySQL – 更新模式

我有一个在生产服务器上运行的小应用程序。 在下一次更新中,数据库模式将会改变; 这意味着生产数据库模式将需要更改,并且需要进行一些数据操作。

什么是最好的方法来做到这一点? IE部署到生产服务器时,运行一次性脚本来完成这些任务?

堆栈:Nodejs Expressjs MySQL使用节点MySQL Codeship Elasticbeanstalk

谢谢!

“最好的方式”取决于你的情况。 这很less发生,还是可能定期发生? 有多less台生产服务器? 还有其他的环境,例如集成testing,分期等吗? 你的开发人员在他们的机器上有自己的数据库环境吗? 你的过程是否涉及持续集成?

景观越复杂,使用Todd Rbuild议的解决scheme就越好(Liquibase,Flywaydb)。

如果您只有一台生产服务器,并且可能因维护而停机几个小时,则可能就足够了

  1. 与您的利益相关者和用户安排维护停机时间
  2. closures服务器
  3. 创build一个备份
  4. 根据需要更新数据库结构和内容
  5. 部署软件更新
  6. 重新启动服务器
  7. testing结果(手动或自动)
  8. 通知您的利益相关者和用户

如果出现任何问题,请回滚到备份的数据库版本和软件。

有数据库更新脚本是可取的。 经过一次或多次的testing是可取的。 提前创build备份至关重要。

http://www.liquibase.org/或http://flywaydb.org/ – 相当“沉重”一次性使用,但是如果将来需要再次更改模式,可能值得投入时间学习其中之一。