Как можно развернуть миграцию PHP doctrine/phinx?

Я пытаюсь настроить довольно простую цепочку инструментов 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 лучшим выбором, или есть другой лучший вариант? Как вы развертываете свои миграции?

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


person Chris Patsatzis    schedule 25.09.2018    source источник


Ответы (1)


Однажды я развернулся на 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 Job или таким образом

person Maël Pedretti    schedule 25.09.2018