2015-08-14 36 views
3

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

这样做的最好方法是什么? I.E运行一次性脚本以在部署到生产服务器时完成这些任务?

堆栈: 的NodeJS Expressjs MySQL的使用节点的MySQL Codeship Elasticbeanstalk

谢谢!

+0

*“I.E运行一次性脚本以在部署到生产服务器时完成这些任务”*这通常是一个很好的选择,只要确保所述脚本的一部分涉及创建备份即可。 –

回答

3

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

您的景观越复杂,使用Todd R建议的解决方案(Liquibase,Flywaydb)就越好。

如果你只是有一个生产服务器,它可以是停机维护了几个小时后,它可能是足以

  1. 预约维修停机时间与你的利益相关者和用户
  2. 关闭服务器
  3. 创建备份
  4. 根据需要更新
  5. 部署软件更新
  6. 数据库结构和内容0
  7. 重新启动服务器
  8. 测试结果(手动或自动)
  9. 通知您的利益相关者和用户

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

建议使用数据库更新脚本。经过一次或多次测试后更可取。提前创建备份至关重要。