Как бы вы реализовали автоматическое обновление для автономного проекта PHP с использованием GitHub? - PullRequest
3 голосов
/ 09 сентября 2011

Мой проект представляет собой набор сценариев PHP, использующих MySQL в качестве базы данных, и его необходимо установить локально с помощью WAMP / LAMP / MAMP.

Ранее я отправлял пользователям ссылку на сжатый архив ичтобы они перезаписали его, но с тех пор, как я окунулся в GitHub, я понял, что есть гораздо лучшие способы;а именно сервис-хуки в GitHub.Тем не менее, это будет работать нормально, если я не изменю базу данных каким-либо образом, что является хорошей возможностью.

Я думал о том, как бы это реализовать, но я могуне найти четкого решения.До сих пор я пришел к выводу, что мне нужно иметь каталог (скажем, update /), который содержит файлы .sql для каждого обновления.Затем скрипт PHP проверит указанный каталог на наличие файла, соответствующего новому номеру версии (не знаю, как я буду определять номер версии; я думал об использовании идентификатора коммита, но он не будет доступен до окончания коммита, поэтому...).

Мне бы очень хотелось внести свой вклад в это дело!

Ответы [ 2 ]

2 голосов
/ 10 сентября 2011

Вот как бы я справился с этим (не самым элегантным или производительным):

  1. Добавить флаг в БД с номером версии
  2. Добавить номер минимальной версии вPHP-файл вашего уровня БД
  3. Убедитесь, что версия БД превышает минимальную версию
    • Если это так: продолжайте о своем бизнесе
    • Иначе: Запустите файл PHP вupdate/, которая будет содержать серию команд ALTER TABLE для запуска на сервере БД.
      • Обновление номера минимальной версии в БД до последнего номера
  4. Все сделано

Вместо того, чтобы запрашивать БД, вы можете получить файл, который генерируется вашим PHP-файлом интерфейса БД (и игнорируется с помощью .gitignore), который вы можете простовыше.

1 голос
/ 09 сентября 2011

Я бы действительно рекомендовал проверить Doctrine и его функцию миграции .

Это делает именно то, что вы ищете, плюс вы получаете очень хороший инструмент для работы со всеми другими аспектами обработки вашей базы данных.

...