Как могут быть развернуты миграции доктрин / phinx в PHP? - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь установить довольно простой набор инструментов CI / CD в TravisCI для проекта PHP с использованием библиотек композитора, что приводит к развертыванию на голом сервере с помощью rsync.Шаги:

  1. Получение кода из репозитория Github при git push.
  2. Выполнение composer install для получения зависимостей.
  3. (Выполнить юнит-тесты - Интеграциятесты) - еще не настроен
  4. Lint, шаги по обеспечению качества кода
  5. Развертывание кода на удаленном сервере Apache через rsync с использованием ключей ssh.

Toolchain работает нормально, поэтомудалеко, но я, кажется, не могу понять, как миграции SQL (в Doctrine или Phinx) могут выполняться автоматически на удаленном сервере.

Является ли стратегия выполнения doctrine:migrations:migrate через ssh какпоследний шаг в разделе deploy TravisCI - лучший выбор, или есть другой лучший вариант?Как вы развертываете свои миграции?

Большое спасибо

1 Ответ

0 голосов
/ 25 сентября 2018

Я однажды развернул в Heroku, используя Travis.

Это было для проекта, использующего Laravel.

Поскольку Heroku отличается изощренностью, я смог сказать ему (из его конфигурации) перенести вашу базу данных после развертывания.

Однако с классическим rsync-сервером вам необходимо подключиться к нему из travis, используя SSH для миграции.(Если вы так же ленивы, как и я, и хотите все автоматизировать).

В соответствии с этим документ вы можете добавить шаг after_deploy или after_success.На этом этапе вы выполняете команды ssh и переносите базу данных.

Очевидно, вы даже можете запускать команды или сценарии через ssh, так что это может быть не так сложно.Посмотрите на следующее: https://www.shellhacks.com/ssh-execute-remote-command-script-linux/

Вы должны обратить ДОПОЛНИТЕЛЬНО внимание на то, что вы вложили в репозиторий github, чтобы избежать проблем с безопасностью на вашем сервере rsync.,

Используете ли вы таким образом для предоставления учетных данных для вашей работы в Travis или таким образом

...