【问题标题】:Using git version control for PHP development使用 git 版本控制进行 PHP 开发
【发布时间】:2012-06-10 15:18:55
【问题描述】:

是否可以对 PHP + MySQL + Apache 项目进行版本控制?它是否可以跟踪数据库中的更改,例如如果我添加了一个新表,我可以提交吗?

谢谢。

【问题讨论】:

    标签: php mysql git apache version-control


    【解决方案1】:

    将数据库保留在版本控制中是不正常的。一些开发人员使用 sqlite 数据库进行开发,以便可以将其签入版本控制,但这可能会导致问题,因为 sqlite 语法可能与 MySQL 不同。

    但是,您可以保留数据库架构和迁移源代码控制。看看mysql-php-migrations 之类的项目就可以开始了。

    http://net.tutsplus.com/tutorials/other/easy-version-control-with-git/ 有一个很好的关于在 Git 中使用 PHP 的教程 - 这应该可以帮助您入门。

    【讨论】:

    • +1,喜欢网络教程和建议:源代码控制中的数据库。
    • -1 数据库模式应始终处于版本控制之下。这是正常的,也是必要的。
    • @awm - 这正是我所说的。你为什么对我投反对票?!
    • @IHID:“将数据库保留在版本控制中是不正常的。”
    • @awm:将数据库保留在版本控制中是不正常的。将数据库 SCHEMA 保留在版本控制中是正常的。这就是我上面所说的......你认为在版本控制中保留一个实际的数据库(例如我提到的 SQLite 文件)是正常的吗?
    【解决方案2】:

    为您的 PHP 脚本使用 Git 没有问题,但是跟踪数据库的更改有点棘手。如果您有创建数据库结构的 SQL 脚本,那么这些脚本可以毫无问题地进行版本控制。否则,您可以在进行任何更改后使用mysqldump 将结构输出到 SQL 脚本:

    mysqldump -d -h localhost -u root -pmypassword mydatabase > dumpfile.sql 
    

    【讨论】:

      【解决方案3】:

      您可以使用 git 来跟踪创建必要数据库结构的 PHP 脚本和 SQL 脚本。这些 SQL 脚本当然可以进行版本控制,并在任何给定状态下重新创建数据库模式。

      【讨论】:

      • 啊,快了一秒;)
      【解决方案4】:

      Git 本质上是 SCM,这意味着 Source 控制。 mysql 中的表存储为二进制文件,所以这不是一个好主意。

      不过,您可以存储用于创建这些表的 SQL 查询,以便在需要时重新创建它们。

      至于php,一切都会好的。

      【讨论】:

        【解决方案5】:

        我最近发布了一个非常简单的 shell 脚本,它有助于将 MySQL 数据库的更改保持在版本控制之下。

        https://github.com/stevecomrie/mysql-version-control

        【讨论】:

          猜你喜欢
          • 2017-08-23
          • 1970-01-01
          • 1970-01-01
          • 2017-12-17
          • 1970-01-01
          • 2015-01-26
          • 2014-05-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多