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