Это нетривиальная проблема, на которую почти у всех есть разные ответы: не существует канонического способа работы с Drupal для подготовки к рабочим скачкам. Dries Buytaert, парень, управляющий шоу Drupal, сделал его одной из ключевых инициатив Drupal 8 . Конечно, Drupal 7 был только что выпущен, так что пройдет немало времени, прежде чем он принесет какие-либо плоды.
Проблема может быть разбита на две отдельные проблемы:
- Постановочная конфигурация (переменные, типы контента, поля, представления и т. Д.)
- Постановочный контент (узлы, пользователи и т. Д.)
Первый может в основном обрабатываться модулем « Функции », который примет конфигурацию вашего сайта и превратит ее в модуль, который вы можете добавить к вашей установке Drupal: таким образом, вы можете добавить его в свою систему контроля версий, не беспокоясь об этом. сдулся, когда вы переносите свой контент.
Последнее действительно сложно, потому что на активном сайте, скорее всего, контент изменится в рабочей среде даже после того, как вы сделали первоначальную синхронизацию со своей средой разработки. Это предотвращает оптовую замену контента во время постановки, как вы можете сделать с конфигурацией.
Кроме того, Drupal не использует универсально уникальные идентификаторы (UUID) для контента: каждый раз, когда добавляется узел или пользователь, идентификатор увеличивается на единицу. Таким образом, то, что может быть узлом 45 на вашем сайте разработки, может быть узлом 90 на вашем рабочем сайте.
К сожалению, у меня нет отличного решения для этого: постановка контента - реальная слабость Drupal. Что я лично делаю, так это добавляю контент только на сайт производства. Если клиент хочет увидеть, как контент выглядит до его запуска, я настрою клон рабочего сайта, доступный только клиенту. Затем, после утверждения, те же изменения вносятся непосредственно в производство.
Есть еще одна альтернатива: модуль Deploy . Предполагается использовать Сервисы, чтобы сделать постановку контента относительно безболезненной. Но я не могу ручаться за его эффективность, и у него нет версии для Drupal 7.