将远程数据库与本地数据库同步

时间:2010-11-01 10:56:56

标签: php mysql

您正在本地开发新版本的现有网站。除此之外,您还对该网站的数据库架构进行了一些更改 - 再次在本地(通过phpMyAdmin)。

新版本已准备就绪,您希望将其上传到远程服务器。

您通过FTP上传文件(这很简单),现在文件是最新的。

如何更新数据库架构并确保它与本地架构同步?

3 个答案:

答案 0 :(得分:2)

我们将数据库更改所需的SQL语句保存在由版本标记的文件中。每当必须注册新版本时,我们都会将其导入数据库。首先进入测试服务器(我们的实时服务器的精确副本减去实时数据;这用随机值替换)。当一切正常时,我们可以转到我们的实时服务器。

总结:在每个版本更新时,整个文件都会导入到实时数据库中。该文件也受版本控制,因此很容易回滚任何不正确的语句。

答案 1 :(得分:2)

如果您迷路了,不知道生产服务器上需要进行哪些更改,您可以使用Mysql Workbench(Mysql中的免费工具)。此工具允许加载2个数据库的模式,将它们进行比较并生成一个脚本,从一个到另一个。这样您就可以确保2架构完全相同。

我想还有其他工具可以做同样的事情,但Mysql workbench在几年前为我做了很好的工作。

但是不要误会我的意思:这不是管理变革的好方法,只是一种摆脱困境的方法。具有源代码控制的解决方案是一种更好的实践。

答案 2 :(得分:1)

虽然在你自己的代码中实现这一点非常简单(DESC和SHOW就像SELECT那样返回数据表)但实际上自动化模式更改是一个非常糟糕的主意;通常这些将在操作期间锁定表 - 因此识别更改然后在受控发布中应用它们更有意义(当Web服务器被禁用/修改以提供'正在构建'/运行时备用数据库)。