Запуск сценариев один раз при развертывании
В настоящее время мы используем Phing для развертывания и используем dbdeploy для внесения любых изменений в базу данных. Однако иногда мы хотели бы внести изменения во время развертывания, которые лучше обрабатываются нашей объектной моделью, и поэтому мы пишем один раз, используя сценарии PHP, которые мы запускаем вручную после развертывания.
Существуют ли какие-либо существующие решения, подобные dbdeploy, которые будут обрабатывать запущенные сценарии и, что более важно, отслеживать, какие из них были запущены, чтобы каждый сценарий запускался только один раз?
3 ответа
Я думаю, что это может быть потенциально полезно и для других. Если вы не можете придумать другое решение, я думаю, что лучше всего будет посмотреть на файл, который реализует задачу DBDeploy, скопировать его в пользовательскую задачу, повторно использовать функцию проверки базы данных, но вместо того, чтобы создавать сценарии SQL, выполняйте сценарии. тебе нужно.
Если вы довольны этим, вы также можете рассмотреть возможность добавления его в Phing. Я уверен, что они будут рады включить его (см. Phing-Как внести свой вклад).
Как насчет:
- Поместить ваши скрипты в папку.
- Цикл по папке и выполнение скриптов.
- Удалить / переместить файлы скриптов после выполнения.
Похоже, взломать, но это легкий способ, Imo.
Вероятно, проще всего представить себе Phing ExecTask, см. Также Руководство пользователя Phing (стабильное).