我正在构建一个应用程序,并想知道更新生产数据库的最佳方法是什么。
现在我部署我的代码(通过GIT存储库的CakePHP应用程序)
一样但更新数据库结构的方法是什么?不是数据。
让我说我在调试中创建一个新表或更改另一个表中的某些字段,现在我导出查询然后ssh到服务器并连接到MySql并将查询注入数据库。
但我确定必须有另一种不那么复杂的方式。
答案 0 :(得分:4)
我喜欢写的是一组函数,用于将我的数据转换为新的字段/表格等等。
例如,我最近不得不对存储交易日期的数据库进行更改,因为我在查询过程中存储日期的格式没有正确评估。
事先准备好所有事项并进行测试的结果确保只需3-5分钟的部署停机时间。
答案 1 :(得分:0)
数据库迁移就是您所需要的。如果您使用的是CakePHP v2.x,请阅读以下内容:
http://book.cakephp.org/2.0/en/console-and-shells/schema-management-and-migrations.html
如果CakePHP 3.x这个:
http://book.cakephp.org/3.0/en/migrations.html
在post-receive
挂钩中,您必须设置一些触发器以在生产服务器上运行迁移
答案 2 :(得分:0)
为什么不使用像Cake内置的迁移。这将允许您在本地创建它们,然后当通过git推送代码时,在生产中运行迁移。