我在生产服务器上运行了一个小应用程序。在下一次更新中,db模式将更改;这意味着生产数据库模式需要更改,并且需要进行一些数据操作。
最好的方法是什么?当我部署到生产服务器时,运行一个一次性脚本来完成这些任务?
堆栈: 的NodeJS Expressjs MySQL使用节点mysql Codeship Elasticbeanstalk
谢谢!
答案 0 :(得分:3)
"最好的方式"取决于你的情况。这很少发生,还是可能定期发生?有多少台生产服务器?是否有其他环境,例如用于集成测试,升级等?您的开发人员在他们的计算机上有自己的数据库环境吗您的流程是否涉及持续集成?
您的景观越复杂,使用Todd R建议的解决方案(Liquibase,Flywaydb)就越好。
如果您只有一台生产服务器并且可以停机维护几个小时,那么它就足够了
如果出现任何问题,请回滚到备份版本的数据库和软件。
建议使用数据库更新脚本。对它们进行过一次或多次测试是可取的。提前创建备份至关重要。
答案 1 :(得分:0)
http://www.liquibase.org/或http://flywaydb.org/ - 非常“沉重”,一次性使用,但如果您将来需要再次更改架构,可能值得花时间学习其中之一。