在生产服务器上更新数据库结构的最佳方法?

Don*_*rko 2 php mysql git cakephp

我正在构建应用程序,并且想知道什么是更新生产数据库的最佳方法。

现在我部署我的代码(通过GIT存储库的CakePHP应用程序)

就像本教程一样https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps

但是更新数据库结构的正确方法是什么?没有数据。

可以说我在调试中创建了一个新表或更改了另一个表中的某些字段,现在我导出查询,然后将ssh导入服务器并连接到MySql并将查询注入数据库中。

但我肯定必须有另一种方法不那么复杂。

Nic*_*ski 5

我想做的是编写一组函数,将我的数据转换为新的字段/表等。

例如,最近我不得不对存储交易日期的数据库进行更改,因为存储日期的格式在查询期间无法正确评估。

  1. 我编写了一个PHP函数,用于对数据库中的每个字段进行转换。
  2. 我获取了实时生产数据库的备份副本。
  3. 我在实时数据库的备份副本上进行了空运行测试了我的功能。
  4. 一切正常后,我将我的应用程序/站点置于临时维护模式,并获取实时数据库的另一个副本。确保我的客户与数据库之间的任何交互都完好无损,并且没有任何间隙。
  5. 我在该数据库副本上运行了这些功能,然后将其重新上传到我的数据库服务器。
  6. 我使站点/应用程序退出了维护模式。

事前准备和测试的结果确保了部署仅需要3-5分钟的停机时间。