Запуск сценариев один раз при развертывании

В настоящее время мы используем Phing для развертывания и используем dbdeploy для внесения любых изменений в базу данных. Однако иногда мы хотели бы внести изменения во время развертывания, которые лучше обрабатываются нашей объектной моделью, и поэтому мы пишем один раз, используя сценарии PHP, которые мы запускаем вручную после развертывания.

Существуют ли какие-либо существующие решения, подобные dbdeploy, которые будут обрабатывать запущенные сценарии и, что более важно, отслеживать, какие из них были запущены, чтобы каждый сценарий запускался только один раз?

3 ответа

Решение

Я думаю, что это может быть потенциально полезно и для других. Если вы не можете придумать другое решение, я думаю, что лучше всего будет посмотреть на файл, который реализует задачу DBDeploy, скопировать его в пользовательскую задачу, повторно использовать функцию проверки базы данных, но вместо того, чтобы создавать сценарии SQL, выполняйте сценарии. тебе нужно.

Если вы довольны этим, вы также можете рассмотреть возможность добавления его в Phing. Я уверен, что они будут рады включить его (см. Phing-Как внести свой вклад).

Как насчет:

  1. Поместить ваши скрипты в папку.
  2. Цикл по папке и выполнение скриптов.
  3. Удалить / переместить файлы скриптов после выполнения.

Похоже, взломать, но это легкий способ, Imo.

Вероятно, проще всего представить себе Phing ExecTask, см. Также Руководство пользователя Phing (стабильное).

Другие вопросы по тегам