我能否对一个PHP + MySQL + Apache项目进行版本控制?并且它是否可以跟踪数据库的更改,例如如果我添加了一个新表,我能否将其提交?
谢谢。
我能否对一个PHP + MySQL + Apache项目进行版本控制?并且它是否可以跟踪数据库的更改,例如如果我添加了一个新表,我能否将其提交?
谢谢。
在版本控制中保留数据库并不正常。一些开发者使用SQLite数据库进行开发,以便可以将其检入版本控制,但这可能会导致问题,因为SQLite语法可能与MySQL不同。
然而,您可以将数据库架构和迁移源代码放入版本控制中。可以查看像mysql-php-migrations这样的项目来开始。
有一个关于如何使用PHP和Git的好教程,可以在http://net.tutsplus.com/tutorials/other/easy-version-control-with-git/上找到 - 这应该可以帮助您入门。
使用Git管理PHP脚本没有问题,但跟踪数据库的更改就有点棘手。如果您有创建数据库结构的SQL脚本,则可以无问题地进行版本控制。否则,您可以在进行任何更改后使用 mysqldump
将结构输出到SQL脚本中:
mysqldump -d -h localhost -u root -pmypassword mydatabase > dumpfile.sql
我最近发布了一个非常简单的shell脚本,可以帮助将MySQL数据库的更改保持在版本控制下。
您可以使用git来跟踪 PHP 脚本和 SQL 脚本,这些脚本可以创建必要的数据库结构。可以对这些 SQL 脚本进行版本控制,以便在任何给定状态下重新创建数据库架构。
Git本质上是SCM,也就是源代码控制。MySQL中的表格以二进制文件形式存储,因此这并不是一个很好的想法。
但是,您可以存储SQL查询语句来创建这些表格,以便在需要时重新创建它们。
至于PHP,一切都会很好。