Node.js,Express,MySQL – 更新模式
我有一个在生产服务器上运行的小应用程序。 在下一次更新中,数据库模式将会改变; 这意味着生产数据库模式将需要更改,并且需要进行一些数据操作。
什么是最好的方法来做到这一点? IE部署到生产服务器时,运行一次性脚本来完成这些任务?
堆栈:Nodejs Expressjs MySQL使用节点MySQL Codeship Elasticbeanstalk
谢谢!
“最好的方式”取决于你的情况。 这很less发生,还是可能定期发生? 有多less台生产服务器? 还有其他的环境,例如集成testing,分期等吗? 你的开发人员在他们的机器上有自己的数据库环境吗? 你的过程是否涉及持续集成?
景观越复杂,使用Todd Rbuild议的解决scheme就越好(Liquibase,Flywaydb)。
如果您只有一台生产服务器,并且可能因维护而停机几个小时,则可能就足够了
- 与您的利益相关者和用户安排维护停机时间
- closures服务器
- 创build一个备份
- 根据需要更新数据库结构和内容
- 部署软件更新
- 重新启动服务器
- testing结果(手动或自动)
- 通知您的利益相关者和用户
如果出现任何问题,请回滚到备份的数据库版本和软件。
有数据库更新脚本是可取的。 经过一次或多次的testing是可取的。 提前创build备份至关重要。
http://www.liquibase.org/或http://flywaydb.org/ – 相当“沉重”一次性使用,但是如果将来需要再次更改模式,可能值得投入时间学习其中之一。