Как я могу вносить обновления на сайт, используя копию для разработки, но затем перемещать обновления обратно, не перекрывая развивающуюся базу данных живого сайта?

20

Я попытался описать название как можно более подробно, и я знаю, что этот вопрос задавался ранее в различных формах, но я не мог найти хорошего ответа на него, и я должен представить, что никто не решил эту проблему.

Это просто, когда сайт WP работает, если он не является статичным, он продолжает обновлять свою базу данных, добавляя новые сообщения, новые заказы woocommerce, новые учетные записи пользователей и т. Д. '

Если я хочу внести некоторые существенные изменения и обновления на сайт, самый простой и легкий способ сделать это - сделать копию либо в локальной установке, либо в другом домене разработки, и внести все изменения в нее. Как только все изменения будут сделаны, я хочу скопировать их обратно на сайт.

Если изменения касаются только файлов, таких как theme и css, это довольно просто. Однако, если изменения связаны с изменениями в базе данных, такими как добавление новых плагинов и добавление контента, связывающего / связанного с этими плагинами, я больше не могу просто копировать сайт обратно, потому что он переопределит любые новые изменения, добавленные в живую база данных сайта. все новые сообщения, новые заказы, новые загрузки изображений будут удалены.

Теперь я знаю, что разные сценарии имеют разные решения, но разве нет метода, который бы учитывал все случаи?

Например, если единственными изменениями, внесенными в действующий сайт, были новые сообщения, я могу экспортировать и импортировать сообщения на сайт разработчика, а затем переместить весь сайт. То же самое с некоторыми другими предметами, но не со всеми. И другая проблема в том, что функция экспорта и импорта в WordPress ужасна. Это настолько элементарно, и у вас очень мало возможностей выбирать и экспортировать только определенные предметы. Я, наверное, перепробовал каждый плагин "расширенный импорт / экспорт", и пока еще ничего не решило эту проблему.

Так что в другой теме кто-то указал на этот плагин, который в основном устанавливается и работает над темой на живом сайте, в то время как обычные пользователи все еще видят существующую тему, но это не решает все типы изменений. потому что если вы хотите внести изменения в контент, скажем, в нижний колонтитул или навигационное меню, это вещи, которые все равно будут отражаться в существующей просматриваемой теме / сайте и могут хорошо выглядеть на новой тестовой теме, но не на живой.

Нет ли способа создать «ветку» сайта на том же сайте / базе данных и затем переключиться? или нет способа разработки на сайте разработчика, но затем объединить базы данных неразрушающим способом? Если вы знаете, на какие компоненты и вещи вы воздействовали, разве не было бы способа сделать это? или вам нужно быть мастером MySQL, чтобы попытаться сделать это.

Я не могу быть единственным, кто имеет эту загадку. Я не могу представить, что нет решения этой проблемы. Как это может быть сделано?

Заранее спасибо.

Джеймс
источник
3
У всех есть эта проблема, и не существует простого решения: держать код на контроле версий, часто дамповать sql на промежуточный сервер, создавать блокировки обслуживания во время миграции (5-10 минут).
Wyck
Я бы не согласился. Плагин CrowdFavorite RAMP - это простое решение для тех, кому нужно ставить и развертывать контент. Называть его «простым решением» может быть довольно сложно, но это хорошо, и любой разработчик должен иметь возможность его настроить (требуется SSH и удаленный доступ к MySQL и т. Д.)
jb510
Кто-нибудь пробовал sitepush ? Я не против заплатить 250 долларов за Ramp, если это лучшее решение, но со стороны трудно увидеть, насколько хорошо эти системы работают без полного развертывания и тестирования, я полагаю.
Джеймс
Не использовал sitepush. Похоже, что это подталкивает полные базы данных (как Migrate WP DB Pro). Это хорошо для развертывания статического сайта, но не работает в динамическом режиме (т. Е. Происходят новые сообщения / комментарии). RAMP фактически управляет разницей между БД и слиянием, а не заменяет живую БД.
jb510
Возможно, вы захотите использовать DBV PHP , проект с открытым исходным кодом, поместив вашу БД под контроль версий. Он даже имеет пользовательский интерфейс, чтобы упростить управление. Другой вариант - переключиться, например, на Laravel, в состав которого встроен инструмент миграции.
Кайзер

Ответы:

2

На самом деле нелегкий способ сделать то, что вы хотите сделать, но я бы сделал снимок вашего сайта, внедрил изменения, и если что-то тормозит, восстановите и попробуйте снова. Это может быть недоступно в течение часа, но я только недавно сделал это, когда я каким-то образом замутил сайт, над которым я работал. Это может не быть «правильным» способом решения проблемы, однако для меня это работает. Удачи.

user57081
источник
Как может быть так, что команда WP не думала о профессиональном способе сделать это? это 2018 !!
asael2