从git-reo自动化环境设置/更新的最佳方式


Best way to automate the environment setup/update from a git repo?

我有以下设置:一个带有LAMP设置的本地debian睫毛膏。现在,我需要使用一个通过git(特别是GitLab)管理的PHP项目。

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

  • 创建MySQL数据库
  • 导入MySQL架构
  • 为Apache创建vHost

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

  • MySQL模式的更改
  • 插入/更新/删除记录

这必须由每一个开发者来完成。现在我搜索一个解决方案来自动化这个工作流程。我曾经考虑过ApacheAnt,我认为该工具可以创建一个解决方案。

在Ant文件中,我可以为数据库、vhost和其他东西创建工作流。另外,我需要一个工具来管理MySQL迁移(可能是Phinx?)。这个工具我也可以由Ant触发,所以我可以在结账过程中/之后自动更新MySQL。

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

不幸的是,我需要帮助和建议来为我的案子找到正确/最好的方法。

附言:很抱歉有语法错误。英语不是我的母语。

管理本地开发环境的方法之一,最近越来越流行,是通过VM或容器使用某种虚拟化。Vagrant和Docker是两种最受欢迎的解决方案。通常,他们会附带一个预置工具,如Ansible或Chef。这个想法是,您需要在实际状态下维护开发环境的一个映像(或多个映像)。Newcommers将需要安装相同的工具并引导环境。在互联网上搜索更多信息。

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