我有以下设置:带有 LAMP 设置的本地 debian 机器。现在我需要处理一个通过 git(或特殊的 GitLab)管理的 PHP 项目。
如果我(或其他开发者)加入这个项目,我必须做几个思考:
- 创建一个 MySQL 数据库
- 导入 MySQL 模式
- 为 Apache 创建虚拟主机
- ...
如果我在一段时间不活动后更新项目,我必须更新几个想法:
- MySQL 架构的变化
- 插入/更新/删除记录
- ...
这必须由每个开发人员完成。现在我正在寻找一个解决方案来自动化这个工作流程。我曾经考虑过 Apache Ant,我认为该工具可以创建解决方案。
在 Ant 文件中,我可以为数据库、虚拟主机和其他东西创建工作流。另外我需要一个工具来管理 MySQL 迁移(也许是 Phinx?)。我也可以通过 Ant 触发此工具,因此我可以在 checkout 过程中/之后自动执行 MySQL 更新。
但是这个完整的idea是我自己创造的。我没有此类流程的经验。如果您没有任何经验,很难搜索这个主题,因为我发现了太多关于持续集成、持续交付、不同工具的主题和方面,以至于我无法区分与我的需求相关的内容。
不幸的是,我需要帮助和建议来找到适合我的情况的正确/最佳方法。
PS:如有语法错误,请见谅。英语不是我的母语。
最佳答案
最近流行的管理本地开发环境的方法之一是通过 VM 或容器使用某种虚拟化。 Vagrant和 Docker是两个最流行的解决方案。通常它们伴随着一个配置工具,比如 Ansible或 Chef .这个想法是您需要在实际状态下维护开发环境的一个图像(或多个图像)。新手将需要安装相同的工具并引导环境。 Dig the internet至 find more .
如果您以这种方式对数据库进行容器化和版本化,则根本不需要任何迁移工具(希望如此):您选择的工具将按设计处理版本。但是您仍然可以自由使用 Phinx 或其他解决方案,例如 Liquibase或 FlyWay .在这种情况下,迁移可以在您的主要代码库旁边使用 Git 进行版本控制。
关于php - 从 git repo 自动化环境设置/更新的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37155923/