У меня есть живой сайт, и люди активно размещают контент. Однако мне пришлось внести некоторые изменения в среду разработки, что заняло у меня пару недель. Изменения требовали установки новых модулей и удаления старых, что, конечно, изменило содержание и структуру базы данных.
Мой вопрос: как мне загрузить этот сайт обратно в живую среду и обновить базу данных, не перезаписывая новый контент новыми пользователями, которые были добавлены за последние две недели?
Ответы:
Томас Захреддин прав. Но в зависимости от того, что изменилось («это заняло у меня пару недель ...»), есть и другие вещи, которые следует учитывать.
settings.php
.Если у вас нет тривиального случая, я рекомендую проверить вашу процедуру заранее. И, конечно же, делайте резервные копии файлов и данных, прежде чем начинать работу с работающей системой. ( Резервное копирование и миграция здесь пригодятся.)
источник
Вы должны проверить, что вы хотите изменить:
источник
У меня есть такая же процедура для работы при обновлении сайтов Drupal. Самая большая проблема в том, что Drupal не очень хорошо справляется с разделением контента и логики в своей базе данных.
Ответов Томаса Загреддина и BetaRide будет достаточно, чтобы дать вам лучший шанс для успешного завершения миграции. Там действительно нет святого Грааля на эту тему.
Однако я хотел бы дать вам совет по разработке, который избавит меня от многих проблем при обновлении наших веб-сайтов: постарайтесь максимально сохранить логику в своем коде (модули / темы). Мол, старайтесь избегать создания просмотров как можно больше. Иногда вам придется, но это потребует другого обновления базы данных ...
Используйте управление исходным кодом!
Если вы можете сохранить все до кода (конечно, вы не всегда сможете это сделать), вы можете просто использовать SCM, такой как Git , SubVersion или Mercury, чтобы обновить ваш источник, и в худшем случае вернуться к предыдущая версия вашего источника, если ваше обновление не работает, как планировалось.
И, конечно же, как указано в предыдущих ответах: резервное копирование, резервное копирование, резервное копирование, резервное копирование ...
источник
Для большинства изменений вы можете использовать модуль возможностей. Этот модуль может изменять только те изменения, которые вы сделали в локальной среде.
В противном случае вы можете использовать этот красивый модуль « Резервное копирование и миграция ». Сначала установите этот модуль онлайн, затем сделайте резервную копию всего существующего контента или базы данных, а затем разверните его на локальном компьютере. Затем внесите изменения в локальный файл, который вы хотите, снова сделайте резервную копию локального файла и затем разверните его в Интернете.
источник
У меня просто была такая же проблема. Чтобы решить эту проблему, я заметил, что единственный контент, который у меня был в прямом эфире, но не в dev, это новые данные пользователя. Я просто зашел на вкладку «Люди» администратора и скопировал данные о людях в dev. В dev я просто набрал их без какой-либо автоматизации. Поэтому в следующий раз, когда я загружу из dev, данные о людях, естественно, будут правильными и не будут перезаписаны.
источник