контроль версий схемы базы данных в php-приложении - PullRequest
2 голосов
/ 14 января 2010

У нас есть приложение на основе php / mysql, которое несколько отличается для ряда клиентов. Также у нас есть несколько разработчиков, работающих над базой кода.

Каков хороший способ управления изменениями схемы базы данных в этом сценарии? Должны ли мы требовать от разработчиков написания небольшого сценария, когда требуется изменение БД? Я думаю, может быть, мы могли бы включить проверку в наш код, который запускает сценарии обновления, если он находит новые, чтобы при обновлении svn, а затем переходе на сайт он запускал сценарии и обновлял схему db. *

Существуют ли в PHP стандартные библиотеки, которые делают это и могут быть подключены без необходимости принятия целого фреймворка>

Ответы [ 3 ]

1 голос
/ 14 января 2010

Возможно, вы захотите узнать, как использовать управление исходным кодом ветвление .

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

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

Таким способом можно отслеживать изменения как кода PHP, так и файлов схемы базы данных.

1 голос
/ 14 января 2010

Моя рекомендация будет вашим подходом. Вы можете иметь каждый скрипт обновления БД, содержащий как обновление, так и метод понижения для облегчения обновления и отката. Если использование ORM, подобного Doctrine (http://www.doctrine -project.org / ) не является вариантом, я бы посоветовал взглянуть на их реализацию «Миграции», чтобы найти хорошие примеры и лучшие практики: http://www.doctrine -project.org / документации / ручная / 1_2 / а / миграция .

0 голосов
/ 14 января 2010

Я хотел бы использовать / написать что-то вроде использования Akelos фреймворка, взгляните на этот скриншот (около минуты 4) для простого примера.

...