使用git版本控制进行PHP开发

3

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

谢谢。

5个回答

4

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

然而,您可以将数据库架构和迁移源代码放入版本控制中。可以查看像mysql-php-migrations这样的项目来开始。

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


+1,喜欢Net Tuts教程并建议将数据库纳入源代码控制。 - Haroon
-1 数据库模式应始终处于版本控制之下。这是正常和必要的。 - awm
@awm - 这正是我说的。你为什么要给我点踩?! - iHiD
@IHID:“在版本控制中保存数据库并不正常。” - awm
@awm:将数据库保存在版本控制中并不正常。将数据库SCHEMA保存在版本控制中才是正常的。这就是我上面所说的...你认为将实际数据库(例如我所提到的SQLite文件)保存在版本控制中是正常的吗? - iHiD
@IHID 然后将您的注释更改为引用数据库文件,而不是数据库。我不会就注释与您争论。 - awm

3

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

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

0

0

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


啊,快了一点点 ;) - Bartek Banachewicz

0

Git本质上是SCM,也就是源代码控制。MySQL中的表格以二进制文件形式存储,因此这并不是一个很好的想法。

但是,您可以存储SQL查询语句来创建这些表格,以便在需要时重新创建它们。

至于PHP,一切都会很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接