php - 从 git repo 自动化环境设置/更新的最佳方法?

标签 php mysql git ant continuous-integration

我有以下设置:带有 LAMP 设置的本地 debian 机器。现在我需要处理一个通过 git(或特殊的 GitLab)管理的 PHP 项目。

如果我(或其他开发者)加入这个项目,我必须做几个思考:

  • 创建一个 MySQL 数据库
  • 导入 MySQL 模式
  • 为 Apache 创建虚拟主机
  • ...

如果我在一段时间不活动后更新项目,我必须更新几个想法:

  • MySQL 架构的变化
  • 插入/更新/删除记录
  • ...

这必须由每个开发人员完成。现在我正在寻找一个解决方案来自动化这个工作流程。我曾经考虑过 Apache Ant,我认为该工具可以创建解决方案。

在 Ant 文件中,我可以为数据库、虚拟主机和其他东西创建工作流。另外我需要一个工具来管理 MySQL 迁移(也许是 Phinx?)。我也可以通过 Ant 触发此工具,因此我可以在 checkout 过程中/之后自动执行 MySQL 更新。

但是这个完整的idea是我自己创造的。我没有此类流程的经验。如果您没有任何经验,很难搜索这个主题,因为我发现了太多关于持续集成、持续交付、不同工具的主题和方面,以至于我无法区分与我的需求相关的内容。

不幸的是,我需要帮助和建议来找到适合我的情况的正确/最佳方法。

PS:如有语法错误,请见谅。英语不是我的母语。

最佳答案

最近流行的管理本地开发环境的方法之一是通过 VM 或容器使用某种虚拟化VagrantDocker是两个最流行的解决方案。通常它们伴随着一个配置工具,比如 AnsibleChef .这个想法是您需要在实际状态下维护开发环境的一个图像(或多个图像)。新手将需要安装相同的工具并引导环境。 Dig the internetfind more .

如果您以这种方式对数据库进行容器化和版本化,则根本不需要任何迁移工具(希望如此):您选择的工具将按设计处理版本。但是您仍然可以自由使用 Phinx 或其他解决方案,例如 LiquibaseFlyWay .在这种情况下,迁移可以在您的主要代码库旁边使用 Git 进行版本控制。

关于php - 从 git repo 自动化环境设置/更新的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37155923/

相关文章:

javascript - Php为什么不向Jquery ajax发送响应?

git - 如何在 'git push' 中省略 <remote> 和 <ref> ?

git - 如何在 Git 中应用一个非常旧的补丁?

git - 如何用 git gui 做一个 rebase?

mysql - 由于元数据锁定,无法重命名表

php - 从数据库中检索购物车项目

php - 如何在 PHP 中对数组和数据进行排序?

PHP代码没有被执行,但是代码显示在浏览器源代码中

mysql - 无法在 MySQL 5.7 中添加外键(引用表中缺少约束)

php - 为 AJAX-PHP-MySQL 生成的表创建动态 Div 标签