PHP/MySQL автономный скрипт установки/обновления?

Я ищу скрипт, который быстро реализует функциональность установки/обновления пакетов для моей платформы. Он должен уметь делать следующие вещи:

  • Должен быть совместим с PHP 5.
  • Должен иметь возможность устанавливать и обновлять файлы компонентов и таблицы базы данных.
  • Должен позволять определять зависимости пакетов и иметь форму разрешения конфликтов.
  • Должен разрешать операторы UPDATE SQL, когда это предоставляет разработчик пакета. (Чтобы внести изменения в базу данных без потери данных).
  • Должна быть возможность «поместить» пакет обновления в целевую папку.
  • Должен иметь возможность определять и обнаруживать различные типы пакетов для применения упомянутой «тюрьмы».
  • Должен предоставить API для интеграции в пользовательский сервер.
  • Должна разрешать загрузку пакетов, желательно по HTTP (а не по FTP или другим).

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

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


person Beanow    schedule 17.04.2012    source источник


Ответы (1)


Я не знаю никаких волшебных инструментов для этого, но пара, которая может помочь вам в решении этих задач, — это Phrake и Composer.

Phake — это PHP-версия утилиты Ruby Rake. Вы можете использовать эти сценарии для настройки базы данных, обновления файлов и запуска модульных тестов.

Для управления пакетами вы можете использовать Composer для управления вашими зависимостями (он также может загружать из PEAR, если вы зависите от пакетов из этих систем) и, конечно же, это может быть включено в ваши сценарии сборки.

person Ross    schedule 17.04.2012
comment
Спасибо за предложения. Мне очень нравится внешний вид Composer. Хотя ни Phake, ни Composer не предоставляют функции обновления базы данных, которые мне нужны. Возможно, вы знаете систему, которая делает это. Предпочтительно, чтобы программист пакета предоставил файл UPDATE.SQL для обновления с более старых версий, кроме файла INSTALL.SQL для новой установки. - person Beanow; 18.04.2012
comment
Хороший пример того, что я имею в виду, реализован в модулях Drupal. Они генерируют схему базы данных и позволяют вносить дополнительные дополнения в эту базовую схему для каждой версии. Также предоставляется функция обновления для запуска кода, необходимого для обновления существующей базы данных до целевой версии. - person Beanow; 18.04.2012
comment
Читая дальше в деталях, Composer является подходящим решением. Хотя кажется, что не существует стандарта для операций с БД при установке/обновлении, это можно реализовать и повторно использовать для любого другого продукта, который требует этого. Кроме того, он реализует все требования, которые я перечислил. Сейчас приму, спасибо! - person Beanow; 19.04.2012
comment
Привет, извините, я немного не в сети. Я искал решения «просто добавить-конфигурацию» для управления базой данных, но ничего не вышло (хотя в итоге я получил много страниц по установке PHP/MySQL, вздох). Я не видел, как это делает Drupal, но стоило бы позаимствовать их механизм обновления или механизм обновления Wordpress. Я думаю, что в MediaWiki тоже есть что-то подобное. Обновите это, если вы найдете пакетное решение для этого! - person Ross; 19.04.2012