drupal dev / stage / производственная установка - PullRequest
4 голосов
/ 03 февраля 2011

эй, я начал разрабатывать новый сайт в drupal6, и мне интересно, как лучше всего настроить его для среды разработки / этапа / производства ... svn?онлайн платный сервис (я видел сайты serval soultions, которые нужно платить, чтобы делать вещи) bash скрипт для синхронизации?пожалуйста помогите

Ответы [ 4 ]

5 голосов
/ 03 февраля 2011

Вот как мы это делаем: у нас есть 2 сервера, 1 рабочий и второй, в которых размещаются среды разработки для каждого разработчика и «промежуточная» среда.Код хранится в Git, и мы постоянно поддерживаем ветку master и live.

В двух словах: «живая» база данных экспортируется и распространяется разработчикам с помощью drush.Конфигурация и настройки «сохраняются» с использованием обеих функций, а также hook_update () и hook_install () .Мы используем Feeds

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

Конфигурация и разработка, происходящие в базе данных, экспортируются через Возможности и / или с использованием перехватов установки и обновления.Используя эти три метода, мы можем легко развернуть около 99% всех настроек, типов контента и других конструкций, которые обычно существуют только в базе данных.Последние 1% - это вещи, которые легче обрабатываются с помощью шага настройки развертывания, а не пишут запросы в hook_install и hook_update.Возможно 100% развертывание, но иногда это не стоит затраченных усилий.

Наконец, бывают случаи, когда контент необходимо развертывать от этапа к жизни.Вот тут-то и появляется модуль Feeds. Используя каналы и простой файл импорта CSV-файлов, мы успешно создали и экспортировали большие наборы таксономии и даже сложные узлы и наборы узлов.Использование каналов также полезно, когда вам нужен стандартный набор «тестовых» данных для заполнения ваших баз данных разработки.

Когда приходит время развертывать новые функции или настройки, мы объединяем изменения разработчика с основной веткой, развертываеми тестирование на стадии подготовки, которое обычно требует запуска update.php, а затем «импортирует» изменения из новых или обновленных функций.Если все проходит тестирование и контроль качества, изменения объединяются в оперативную ветвь и развертываются в производственной среде.

Самые большие уроки, которые мы усвоили, это:

  • , в то время как в функции можно что-то добавить, обновить или установить, обычно это того не стоит.
  • Проще всего обойти базу данных разработчиков в процессе разработки, а затем экспортировать, когда пыль осядет, вместо того, чтобы пытаться экспортировать каждое небольшое изменение.
  • с использованием модуля diff вместе с функциями спасло нашузадницу много раз.
3 голосов
/ 03 февраля 2011

Проверьте команду drush и make drush. Drush отлично подходит для синхронизации, и обязательно ознакомьтесь с модулем резервного копирования. Также взгляните на проект Features, который поможет вам захватить схемы базы данных в коде (см. Также hook_update).

Также: Drupal переходит к мерзавцу через несколько недель. Используйте git.

Wheeeee!

1 голос
/ 03 февраля 2011

Вероятно, это один из вопросов о Друпале, заданных туманом - это область, в которой Друпал довольно слаб.

Возможно, вы захотите взглянуть на Эгир . Это основанная на Drupal платформа, предназначенная для упрощения развертывания и обновления.

Он использует Drush за кулисами, поэтому, если Aegir кажется чрезмерным для ваших нужд, вам может пригодиться Drush. Drush - это оболочка командной строки Drupal, которая позволяет выполнять действия на сайте Drupal с использованием командной строки или внутри пакетных сценариев.

Между этими двумя программами рекомендуется Drupal для управления вашими развертываниями.

Обратите внимание, что Drush (и, следовательно, Aegir) имеет некоторые функции, которые работают только при работе на платформе Linux, поэтому, если ваша система Drupal размещена на Windows, вы можете найти вещи немного сложнее.

0 голосов
/ 02 декабря 2015

После настройки нескольких сред (dev / stage / prod) вы можете использовать git, subversion, чтобы сохранить и синхронизировать код в нескольких средах.Но после этого вы столкнетесь со следующей проблемой: как проталкивать контент между средами. Я знаю, что это очень старый вопрос, потому что это очень старая проблема.Мы работаем над этой проблемой уже год, в нашей компании, darwoft.Пожалуйста, взгляните на наш инструмент.www.drumine.com.По сути, мы можем назначить один и тот же идентификатор для объектов в разных средах.Мы собираемся быть 10 декабря 2015 года, в http://camp.drupalchile.org/, объясняя, как это работает.

...