3

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

谢谢你。

4

5 回答 5

4

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

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

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

于 2012-06-10T15:24:18.917 回答
3

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

mysqldump -d -h localhost -u root -pmypassword mydatabase > dumpfile.sql 
于 2012-06-10T15:25:31.770 回答
0

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

于 2012-06-10T15:20:48.047 回答
0

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

但是,您可以存储创建这些表的 SQL 查询,并允许您在需要时重新创建它们。

至于php,一切都会好的。

于 2012-06-10T15:21:21.677 回答
0

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

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

于 2014-02-05T08:08:44.193 回答