0

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

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

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

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

非常感谢

4

1 回答 1

0

我曾经使用 Travis 部署到 Heroku。

这是一个使用 Laravel 的项目。

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

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

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

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

为了避免 rsync 服务器出现安全问题,您必须特别注意放入 github 存储库中的内容

是使用这种方式为您的 Travis 工作提供凭据还是那种方式

于 2018-09-25T10:24:32.757 回答