0

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

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

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

存储库:

  • live - 服务器上的实时站点
  • dev - 服务器上的开发站点
  • local - 计算机上的本地站点

方法#1

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

  • 最终并不是一个真正有效的解决方案

方法#2

不知何故(启发我)用一个数组填充一个 php 文件,该数组中包含从 phpmyadmin 生成的所有 SQL 命令,然后从钩子中执行该 php 文件。我会在服务器的一个存储库中进行所有结构更改,并在从本地拉取并合并到 live 时,更改 MySQL 结构。

  • 会很整洁,但不完全确定如何执行它
  • 需要在 ubuntu 服务器和本地 wampserver 上工作

方法#3

通过 MySQL 的一些不错的解决方案,可以在服务器和本地工作。

  • 不知道那将如何工作。

感谢您的宝贵时间,如果您知道更好的方法,请分享!我正在寻找一种有意义的自动解决方案。

4

2 回答 2

1

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

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

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

如果 man,这将与迁移一起工作知道编程语言——那么使用框架中的工具就可以了。如果没有 - 那么最好使用 xml/config 之类的东西http://www.liquibase.org/

于 2012-12-30T17:58:53.327 回答
1

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

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

感谢评论指出在哪里看。

于 2012-12-30T17:04:03.373 回答