如何部署PHP学说/ phinx迁移?

时间:2018-09-25 09:21:44

标签: travis-ci phinx doctrine-migrations

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

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

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

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

非常感谢

1 个答案:

答案 0 :(得分:0)

我曾经使用Travis部署到Heroku。

这是一个使用Laravel的项目。

由于Heroku非常老练,我已经能够(从其配置中)告诉它在部署后迁移数据库。

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

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

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

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

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