同步PHP Git项目'MySQL结构


Syncing PHP Git project's MySQL structure

我最近学会了使用git,有一个很好的编辑器支持它,还有一个很好的钩子,可以在推送时将所有内容上传到一个实时站点。所以现在我有了本地版本,开发测试版本和实时版本,一切都很好。唯一的问题,我还没有设法找到一个很好的解决方案,如何有效地同步数据库之间的MySQL结构。

我在扩展项目时经常遇到的两种情况是添加额外的列或创建新表。我经常通过phpmyadmin来完成,虽然我可以将给定的更改复制粘贴为SQL,但我努力寻找比在3个以上的存储库中复制粘贴更有效的解决方案。

目前这些是我考虑的方法,但我更喜欢一个更有效的方法。

存储库:

  • live -服务器上的live站点
  • dev -服务器上的开发站点
  • local -计算机上的本地站点
<标题>方法# 1

复制/粘贴phpmyadmin生成的所有SQL命令到每个项目的数据库中

  • 最终不是一个有效的解决方案
<标题>方法# 2 h1> phpmyadmin生成的SQL命令数组填充php文件,然后从钩子执行该php文件。我会在一个服务器的存储库中完成所有的结构更改,然后从本地拉出并合并到live,更改MySQL结构。
  • 会很整洁,但不完全确定如何执行
  • 需要在ubuntu服务器和本地wampserver上工作
<标题>方法# 3

一个很好的解决方案,通过MySQL工作在服务器和本地。

  • 不知道这是怎么回事。
谢谢你的时间,如果你知道一些更好的方法,请分享!我正在寻找一个自动解决方案,使意义。

我意识到我使用的两个CodeIgniter似乎都有很好的方法来处理这个问题。不知道用这个词来搜索Migration

希望所有发现这个问题的人都注意到这一点;关键字是数据库迁移找到好的解决方案。

谢谢你的评论,告诉我该去哪里看

试试http://www.liquibase.org/

我还在yii看到了很好的迁移:http://www.yiiframework.com/doc/guide/1.1/en/database.migration

如果CodeIgniter支持这样的东西——它也很好。是的,我看到它的支持:上下。

如果迁移的人知道编程语言,那么使用框架中的工具是可以的。如果没有——那么最好使用xml/config,比如http://www.liquibase.org/