Jest to nietrywialny problem, na który prawie każdy ma inną odpowiedź: nie ma kanonicznego sposobu Drupala na radzenie sobie z inscenizacją do produkcji. Dries Buytaert, facet prowadzący program Drupal, uczynił go jedną z kluczowych inicjatyw Drupala 8 . Oczywiście, Drupal 7 został właśnie wydany, więc minie trochę czasu, zanim przyniesie on jakiekolwiek owoce.
Problem można podzielić na dwie osobne kwestie:
- Konfiguracja etapowa (zmienne, typy zawartości, pola, widoki itp.)
- Inscenizacja treści (węzły, użytkownicy itp.)
Ten pierwszy może być w większości obsługiwany przez moduł Funkcje , który zabierze konfigurację witryny i przekształci go w moduł, który możesz dodać do instalacji Drupal: w ten sposób możesz dodać go do systemu kontroli wersji i nie martwić się o to zdmuchnięte podczas migracji treści.
To drugie jest naprawdę trudne, ponieważ w aktywnej witrynie prawdopodobnie zawartość zmieni się podczas produkcji, nawet po początkowej synchronizacji ze środowiskiem programistycznym. Zapobiega to hurtowej zamianie treści podczas przemieszczania, tak jak w przypadku konfiguracji.
Ponadto Drupal nie używa uniwersalnie unikalnych identyfikatorów (UUID) dla treści: za każdym razem, gdy dodawany jest węzeł lub użytkownik, identyfikator zwiększa się o jeden. Więc co może być węzłem 45 w twojej witrynie programistycznej, może być węzłem 90 w twojej witrynie produkcyjnej.
Niestety nie mam na to świetnego rozwiązania: inscenizacja treści jest prawdziwą słabością Drupala. Osobiście robię tylko dodawanie treści na stronie produkcyjnej. Jeśli klient chce zobaczyć, jak wygląda treść przed uruchomieniem, skonfiguruję klon witryny produkcyjnej, która jest dostępna tylko dla klienta. Następnie, po zatwierdzeniu, te same zmiany są następnie wprowadzane bezpośrednio do produkcji.
Istnieje jeszcze jedna alternatywa, którą można rzucić: moduł Wdróż . Ma to na celu wykorzystanie Usług, aby relacjonowanie treści było stosunkowo bezbolesne. Ale nie mogę ręczyć za jego skuteczność i nie ma wersji Drupal 7.