Як перейти від тестового середовища до виробничого середовища?


46

Міграція відбувається від місцевого середовища до виробничого середовища. Виробниче середовище працює деякий час і створило безліч статей.

Щоб додати нові речі на свій сайт, я додав власну тему та встановив CCK, Views та інші модулі в моєму локальному тестовому середовищі. Тепер, коли локальне тестове середовище закінчено, як я переміщую його до виробничого середовища, не руйнуючи вміст його бази даних?

Відповіді:


34

Це нетривіальна проблема, на яку майже кожен має різну відповідь: не існує канонічного способу друпаль, щоб вирішити постановку на виробничі поштовхи. Дріс Буйтаерт, хлопець, який веде шоу «Drupal», зробив це однією з ключових ініціатив Drupal 8 . Звичайно, Drupal 7 щойно був випущений, тож пройде якийсь час, поки це не принесе плодів.

Проблему можна розділити на два окремих питання:

  • Конфігурація постановки (змінні, типи вмісту, поля, представлення тощо)
  • Постановочний вміст (вузли, користувачі тощо)

З першим можна в основному керувати модулем Особливості , який прийме конфігурацію вашого сайту та перетворить його на модуль, який ви можете додати до інсталяції Drupal: таким чином ви можете додати його до вашої системи контролю версій і не турбуватися про це під час переміщення вмісту.

Останнє дійсно хитро, адже на активному сайті, ймовірно, вміст зміниться на виробництві навіть після того, як ви зробили початкову синхронізацію з вашим середовищем розробки. Це запобігає оптовій заміні вмісту під час інсценізації, як це можна зробити з конфігурацією.

Крім того, Drupal не використовує універсально унікальні ідентифікатори (UUID) для вмісту: кожного разу, коли додається вузол або користувач, ідентифікатор збільшується на одиницю. Тож, що може бути вузол 45 на вашому сайті розробки, може бути вузол 90 на вашому виробничому сайті.

На жаль, у мене немає чудового рішення для цього: постановка вмісту - справжня слабкість Drupal. Я особисто роблю це додавання вмісту лише на виробничий сайт. Якщо клієнт хоче побачити, як виглядає вміст до того, як він з’явиться в прямому ефірі, я створив клон виробничого сайту, доступного лише для клієнта. Потім, після затвердження, ті самі зміни вносяться безпосередньо до виробництва.

Існує ще одна альтернатива, яка стає проблемою: модуль розгортання . Передбачається використовувати Послуги, щоб зробити контент-постановку відносно безболісною. Але я не можу порушити його ефективність, і він не має версії Drupal 7.


Ви можете переміщувати вміст за допомогою uuid та uuid_features, але він ще не такий надійний.
Джеремі Френч

7

У нашому процесі.

  1. У нас є сценарій оболонки, який витягує db з prod.
  2. Ми використовуємо Хадсона для відновлення наших гілок розробки / інсценізації для синхронізації гілок живих та розробників.

    Оскільки ми використовуємо Git, у кожного завдання, яке ми виконуємо, є своя гілка, то, коли передається QA, ми об'єднуємо її в якості майстра-сервера для тестування регресії.

    Коли майстер готовий, ми робимо тестовий реліз до нашого, Release Serverякий є реплікою в реальному часі (конфігурація, апаратне забезпечення тощо).

  3. Ми використовуємо Featureмодуль для розгортання конфігурацій. Деякі елементи ще не підтримуються функцією, тому ми використовуємо mock_update_N, а потім запустимо updatedb.php абоdrush -vd updb

  4. Після випуску виконайте функції revert ( drush fra --yes), щоб відновити всю переосмислену функцію.
  5. Оскільки ми використовуємо Boost (перехід на Varnish) та Memcache, нам потрібно очистити кеш ( drush cc all).

    Ми використовуємо rsync для синхронізації наших зображень / відео тощо ...


Чи можете ви, будь ласка, розробити крок 2 - Використання Git Я розумію, що ми можемо легко об'єднати будь-які зміни файлової системи, але як ви забезпечите цілісність бази даних? Також, яка саме мета використання тут "Особливості" (для розгортання конфігурацій)? Дякую!
Радж Паван Гумдал

2

Щоб перейти з XAMPP-сервера на інший сервер, я дотримувався інструкцій на цьому веб-сайті .

Переконайтеся, що ви зберігаєте таку ж структуру на виробничому сервері, що і на сервері розробки. Я також повинен був редагувати деякі файли на інформаційній панелі адміністратора Drupal, що знаходиться за адресою: admin / config / media / file-system

Переконайтесь, що для вашої публічної файлової системи та тимчасового каталогу встановлені правильні місця розташування.


Це ніколи не говорить про проблему "злиття". У питанні чітко зазначено, що виробництво містить дані про вміст, які повинні бути недоторканими, тоді як удосконалення від сервера встановлення повинні бути об'єднані у виробництво.
Радж Паван Гумдал
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.