【问题标题】:How can PHP doctrine/phinx migrations be deployed?如何部署 PHP 学说/phinx 迁移?
【发布时间】:2018-09-25 09:21:44
【问题描述】:

我正在尝试在 TravisCI 中为使用 composer 库的 PHP 项目设置一个相当简单的 CI/CD 工具链,从而通过 rsync 在裸机服务器上进行部署。 步骤是:

  1. 通过 git push 从 Github Repo 获取代码。
  2. 运行composer install 获取依赖项。
  3. (执行单元测试 - 集成测试)- 尚未设置
  4. Lint、代码质量步骤
  5. 使用 ssh 密钥通过 rsync 将代码部署到远程 apache 服务器。

到目前为止,工具链工作正常,但我似乎无法理解如何在远程服务器上自动执行 SQL 迁移(在 Doctrine 或 Phinx 中)。

通过 ssh 执行 doctrine:migrations:migrate 作为 TravisCI 的 deploy 部分的最后一步的策略是最佳选择,还是有其他更好的选择?您如何部署迁移?

非常感谢

【问题讨论】:

    标签: travis-ci phinx doctrine-migrations


    【解决方案1】:

    我曾经使用 Travis 部署到 Heroku。

    这是一个使用 Laravel 的项目。

    因为 Heroku 很复杂,我已经能够告诉它(从它的配置)在你部署后迁移你的数据库。

    但是,对于经典的 rsync 服务器,您需要使用 SSH 从 travis 连接到它才能迁移。 (如果你和我一样懒惰,想要自动化一切)。

    根据此doc,您可以添加after_deployafter_success 步骤。从这一步开始,您将运行您的 ssh 命令并迁移您的数据库。

    显然,您甚至可以通过 ssh 运行命令或脚本,所以这可能并不难。看下面:https://www.shellhacks.com/ssh-execute-remote-command-script-linux/

    您必须EXTRA注意您放入 github 存储库的内容,以避免 rsync 服务器出现安全问题。

    是否使用 this way 为您的 Travis Job 或 that way 提供凭据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多