Постановка сайтів, як ви керуєте синхронізацією оновлень у БД?


11

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

Єдиний (заплутаний) потік, який я можу собі уявити, такий:

  1. Тест на локальному сервері (WAMP, XAMP тощо)
  2. Після готовності до розгортання переведіть веб-сайт в режим обслуговування
  3. Резервне копіювання живого веб-сайту (копіювач, sqldump тощо)
  4. Створіть клон заблокованого живого сайту до інсценізаційного сайту
  5. Завантажте модифікації з місцевого середовища на інсценізаційний сайт
  6. Перевірте місце постановки
  7. Натисніть на інсценівку, щоб жити.
  8. Вийміть режим обслуговування

Недоліки потоку вище:

  • час простоїв для користувачів може бути довшим, ніж очікувалося, поки розробник ретельно перевіряє оновлення на веб-сайті;
  • може знадобитися вручну керувати модифікаціями: наприклад, макети веб-сторінок siteorigin зберігаються у db, тож як тільки макет буде змінено, його потрібно імпортувати вручну на місце постановки; у цьому випадку може бути адекватним просто випустити та імпортувати сторінки на веб-сайт, а якщо працює, імпортувати їх у реальному веб-сайті

Цікаво, чи існує кращий і автоматизований спосіб досягти цього.

Як ти гадаєш?

EDIT, за запитом, деякі рішення були запропоновані в минулому, але жодне не пропонує остаточного рішення:


@ Dan9, я думав, що буде безпечніше мінімізувати доступ до веб-сайту в реальному часі. Чи звичайна звичка редагувати макети на веб-сайті? Можливо, я занадто переживаю!
Ріккардо

Ну, ви можете їх створити, оновити, видалити, відновити. Що ти хвилюєшся?
SarahCoding

Тож зазвичай завантажувати макети без тестування на інсценізаційному сайті? Який типовий робочий процес (локальний / постановочний / живий)?
Ріккардо

Погляньте на плагін wp-sync-db .
SarahCoding

Це надійно? Ви використовуєте цей інструмент?
Ріккардо

Відповіді:


2

Нові хостинг-провайдери, які спеціально обслуговують WordPress, зазвичай мають інструменти для полегшення цього болю. Я розміщую своїх клієнтів на Pantheon, який має цей акуратний робочий процес із підтримкою Git , де код рухається лише вгору (від розробки до постановки на виробництво), а БД - лише вниз (навпаки від коду). Копіювання бази даних від виробництва до постановки - це один клік з їх інтерфейсом. За умови дотримання цього робочого процесу це в значній мірі усуває проблему з тим, що коли-небудь псують виробничу базу даних, що дозволяє мені завжди перевіряти свої зміни на новому клоні даних виробничих БД у будь-якому етапі розвитку.

Не потрібно використовувати Pantheon - ви можете застосувати подібний підхід у своєму процесі, використовуючи власні інструменти (Git + плагін для клонування БД, як WP Migrate DB). Я просто вважаю, що цей спосіб працює для мене добре.

Запитання: навіщо ви переводили свій виробничий майданчик у режим технічного обслуговування під час тестування етапів? У більшості випадків цього не повинно бути. Єдиний випадок, про який я можу подумати, - це наявність якоїсь дуже крихкої системи, чутливої ​​до додаткових даних користувачів, що надходять до неї, з катастрофічною помилкою для завантаження - але це, ймовірно, свідчить про іншу, більшу, проблему, де потрібно переосмислити всю архітектуру продукту.


Мій провайдер дозволяє створювати сайти з постановкою в один клік та переходити до живої програми з детальним вибором таблиць, які переписуються, проте мені все одно потрібні блокування користувачів під час запуску остаточного тесту, оскільки частина розгортання вводить дані на стороні розробника в БД (наприклад, макети сторінок веб-сайтів для зберігання сайтів зберігаються в БД), що вимагає від користувачів припинити оновлення під час цієї фази. Якщо у вас є краща ідея, як досягти цього кроку, я буду рада поділитися з вами!
Ріккардо

До речі, ви проходите через розробку / постановку / прямий потік щоразу, коли були внесені невеликі зміни? Наприклад, трохи змінивши макет сторінки в редакторі або змінивши меню
Ріккардо

Так - файли щоразу проходять через dev -> staging -> prod (можливо, ви можете відключити інсценізацію або dev - не пам'ятаю). Dev - це команда розробників. Постановка призначена для забезпечення якості або схвалення дизайнера / клієнта перед тим, як натиснути на прод.
монтреаліст

1

Погляньте на VersionPress, який приносить версію GIT до всього процесу (файлів та бази даних)

Як описано на їхньому сайті:

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


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