我正在尝试使用作曲家库在TravisCI中为PHP项目设置一个相当简单的CI / CD工具链,从而导致通过rsync部署在裸机服务器上。 步骤是:
composer install
以获取依赖项。到目前为止,工具链可以正常工作,但是我似乎无法理解如何在远程服务器上自动执行SQL迁移(在Doctrine或Phinx中)。
作为TravisCI doctrine:migrations:migrate
部分的最后一步,通过ssh执行deploy
的策略是最佳选择,还是有另一个更好的选择?您如何部署迁移?
非常感谢
答案 0 :(得分:0)
我曾经使用Travis部署到Heroku。
这是一个使用Laravel的项目。
由于Heroku非常老练,我已经能够(从其配置中)告诉它在部署后迁移数据库。
但是,对于经典的rsync服务器,您需要使用SSH从travis连接到它以进行迁移。 (如果您像我一样懒,并且想要使一切自动化)。
根据此doc,您可以添加after_deploy
或after_success
步骤。从这一步开始,您将运行ssh命令并迁移数据库。
显然,您甚至可以通过ssh运行命令或脚本,因此可能并不难。查看以下内容:https://www.shellhacks.com/ssh-execute-remote-command-script-linux/
您必须对github存储库中的内容进行 EXTRA 注意,以避免rsync服务器出现安全问题。