我有一个在生产服务器上运行的小应用程序。在下一次更新中,数据库模式将会改变;这意味着生产数据库模式将需要改变,并且需要进行一些数据操作。Node.js,Express,MySQL - 更新模式
这样做的最好方法是什么? I.E运行一次性脚本以在部署到生产服务器时完成这些任务?
堆栈: 的NodeJS Expressjs MySQL的使用节点的MySQL Codeship Elasticbeanstalk
谢谢!
我有一个在生产服务器上运行的小应用程序。在下一次更新中,数据库模式将会改变;这意味着生产数据库模式将需要改变,并且需要进行一些数据操作。Node.js,Express,MySQL - 更新模式
这样做的最好方法是什么? I.E运行一次性脚本以在部署到生产服务器时完成这些任务?
堆栈: 的NodeJS Expressjs MySQL的使用节点的MySQL Codeship Elasticbeanstalk
谢谢!
“最好的方式”取决于你的情况。这很少发生,还是可能定期发生?有多少台生产服务器?是否有其他环境,例如用于集成测试,分期等?你的开发人员在他们的机器上有自己的数据库环境吗?你的过程是否涉及持续集成?
您的景观越复杂,使用Todd R建议的解决方案(Liquibase,Flywaydb)就越好。
如果你只是有一个生产服务器,它可以是停机维护了几个小时后,它可能是足以
如果出现任何错误,回滚到数据库和软件的备份版本。
建议使用数据库更新脚本。经过一次或多次测试后更可取。提前创建备份至关重要。
http://www.liquibase.org/或http://flywaydb.org/ - 相当“沉重”的一次性使用,但如果您将来需要再次更改模式,可能值得投入时间去学习其中的一种。
*“I.E运行一次性脚本以在部署到生产服务器时完成这些任务”*这通常是一个很好的选择,只要确保所述脚本的一部分涉及创建备份即可。 –