Мы - команда многих разработчиков, работающих над веб-сайтом, который использует и Joomla и пользовательские Сценарии PHP. Проблема состоит в том, что существует несколько разработчиков, работающих над различными функциями, которые должны обновить информацию в Joomla (добавляющий модули, изменив существующие или изменив настройки) и когда один разработчик изменяет что-то, он обычно вносит изменение локально сначала и затем делает то же самое (надо надеяться), на рабочем сервере. Не только, что это очень подвержено ошибкам, но и разработчики часто, забывают говорить другим разработчикам об изменениях. Пользовательские Сценарии PHP легко совместно используются разработчиками, но об изменениях в Joomla часто забывают, и они приводят к серьезным конфликтам, когда разработчик пытается копировать свои локальные изменения в производстве.
Я думал о размещении Joomla в Подвижном репозитории, но как мы могли распределить изменения в базе данных между разработкой, тестированием и производственными машинами?
Мы запускаем все наши сайты Joomla в режиме Subversion, проверяя их по мере необходимости. Мы просто разветвляемся всякий раз, когда нам нужно внести серьезные изменения в проект.
Как правило, мы запускаем единую тестовую базу данных, которая используется всеми, чтобы гарантировать единообразие данных, но вы также можете легко запустить локальную базу данных.
Если вы строите все как расширения (модули, компоненты и плагины), они должны включать любые необходимые изменения базы данных. Я бы настроил его так, чтобы каждый разработчик работал со своей собственной локальной базой данных. Если вам нужно загрузить тестовые данные, я бы просто создал сценарии MySQL, которые можно запустить после установки всех расширений. Поскольку все это можно зарегистрировать в репо, вы должны хорошо разбираться в всех, кто делится кодом.
Используя PHP, вы должны быть в состоянии написать быстрый скрипт, который будет запускаться с пустым сервером, устанавливать Joomla !, установить все ваши расширения, а затем выгружать любые тестовые данные. Наличие этого также будет полезно для разработчиков, чтобы вернуться в «чистое» состояние. Я бы посоветовал разработчикам вернуться к золотому состоянию, прежде чем они начнут новую работу.
Еще одна идея - использовать mysqldump для дампа всех ваших таблиц. Если пользователь вносит изменение в базу данных на своем локальном компьютере, ему также необходимо выгрузить изменение и зарегистрировать его.
Мы используем SVN для всех наших клиентов с отдельными базами данных. При установке нового расширения база данных изменяется. Имея различие между базой данных до и после установки расширения, мы знаем, в чем разница.
Мы используем SVN на нашем сервере для управления подобными проблемами. Если вы собираетесь вести продуктивную разработку с командой людей, вы должны использовать систему контроля ревизий. Их существует множество, наберите в Google svn, cvs, git, это некоторые из наиболее распространенных систем контроля версий. Первоначальная настройка может занять некоторое время, но вы будете пожинать плоды!
Надеюсь, это поможет! Будьте здоровы