2010-02-24 7 views
5

Я немного потерян, один из моих коллег-разработчиков делает сайт Drupal, который делает специальные страницы, пользовательские логотипы, пользовательскую иерархию и т. Д. Его работа разбросана по базе данных таблицы (это выглядит как CCK create tables), строки базы данных (тексты, ссылки на изображения и т. д.), статические файлы (изображения, файлы PDF ...) и, возможно, некоторые PHP (настраиваемый модуль).Как управлять сайтом drupal в git

Моя проблема заключается в том, чтобы получить его работу в репозитории git и возможность развернуть его на разных серверах последовательным образом, как я бы делал с традиционной работой разработчиков (скажем, J2EE). Одним из моих ограничений является отказ от необработанного SQL, потому что мы можем развернуть тот же код на разных РСУБД. Но если я должен, я ослаблю это ограничение.

Я не могу найти модуль, который делает это из коробки, есть ли у вас указатель, который я мог пропустить на веб-сайте drupal?

Спасибо за вашу помощь,

Николас.

ответ

4

Использование Особенности наряду с контексте является очень мощным. Контекст позволяет создать «раздел» для вашего сайта. Это лучше всего проиллюстрировано на примере:

Допустим, мы определяем контекст «Форум» как что-либо с URL-адресом форумов/*. Контекст позволяет нам сказать: «Я хочу показать эти три представления в правой панели, только когда я нахожусь в контексте« Форумы ».

Теперь, используя функции, мы можем создать« модуль », определяемый контекстом. Таким образом, мы получим модуль под названием «youSite_forums», который будет включать все виды, блоки и т. Д., Которые были определены в контексте вашего форума. Он также определит правильные зависимости, а также типы контента, используемые в контексте . Все будет поставляться в комплекте красиво в модуле.


Что касается версий контента, такого как узел, вы можете пользователя либо узла экспорта, или просто сделать DB дамп с помощью резервного копирования и миграции. Мы используем это время от времени, но у нас никогда не было каждого узла, версированного в SVN.


Ссылки:

Features

Context

Backup and Migrate

+1

Я бы полностью согласился с Эриком. Для еще большего контроля я также предлагаю заглянуть в модуль Strongarm. Если вы ищете дополнительную информацию об управлении процессом развертывания, вы можете найти более длинную запись на http://www.opc.com .au/web-development/drupal-release-management-drush-and-git –

4

Особенности: модуль может быть у вас, вы хотели бы пойти. Он позволяет экспортировать различные конфигурации сайтов и модулей. Экспорт осуществляется в виде настраиваемого модуля Drupal, который затем можно сохранить и управлять через git, а затем перевести функции на другие сайты Drupal.

http://drupal.org/project/features

подробнее (и скринкаст) на модуле:
http://developmentseed.org/blog/2009/may/29/making-and-using-features-drupal

+0

Спасибо, это действительно интересно, и с таким именем, я не смотрел на нее раньше. Я попробую это сегодня. – nraynaud

+0

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

+0

Под «содержимым базы данных» вы имеете в виду содержание узлов? (Конфигурации экспорта компонентов также хранятся в базе данных по умолчанию.) – ashtonium

2

Вы также можете посмотреть на услуги & развертывания. Развертывание использует службы xmlrpc server для передачи большинства данных drupal с одного сайта на другой или в вашем случае, установки ваших разработчиков на промежуточную установку.

http://drupal.org/project/Services

http://drupal.org/project/deploy

Что касается метода "развернуть его на различных серверах в единообразной форме" смотреть в Capistrano с railsless-Deploy. Так просто настроить некоторые задачи, я использую их для развертывания всех моих сайтов drupal.

http://www.capify.org/index.php/Capistrano

http://github.com/leehambley/railsless-deploy

+0

Точка моего подключения заключается в том, что нет прямой связи между dev и staging, она должна проходить через git между ними. Чтобы я мог вернуться во времени, у меня есть тот же «ритм версии» для файлов, узлов и темы и т. Д. Мое все «приложение» намного больше, чем модуль drupal, и я не очень доверяю drupal, чтобы сделать это основной компонент нашего предложения. Я просто «интегрирую» в него. – nraynaud

+0

Наверное, проще всего использовать контекст и функции. По крайней мере, вы можете сохранить эту функцию в репо и включить ее, как вам будет угодно. – unn

+0

Хотя это всегда проблема, с которой вы сталкиваетесь с Drupal ... у вас есть все эти представления, блоки в базе данных, как вы последовательно получаете их из одного места в другое. – unn

Смежные вопросы