Как объединить изменения от копии разработки сайта на живой сайт, не теряя нового контента?

drupal.stackexchange https://drupal.stackexchange.com/questions/137

  •  16-10-2019
  •  | 
  •  

Вопрос

Какова лучшая процедура для слияния работы, выполненной по разработке копии сайта с помощью копии Live Production? Часто на сайт было добавлено много нового контента с тех пор, как разработка началась на новейших функциях. И большинство дополнений к сайту будут включать изменения в базу данных. Итак, копировать какие -либо новые файлы легко, но как насчет базы данных? Как объединить свои изменения с существующей производственной базой данных без потери нового контента, который был добавлен с момента в последний раз, когда вы обновляли производственный сайт? Есть ли модули, которые помогают с этим?

Это было полезно?

Решение

Для типов контента, представлений и изменений структуры на сайте DEV смотрите на использование Функции Чтобы экспортировать базу данных в код.

Для миграции контента есть много вариантов, но не одно твердое решение. Одним из примеров является Набор развертывания.

Другие советы

Я принял здесь в основном две школы мысли (3 -я школа мысли, выполняющая различия в базе данных, я не буду обсуждать, потому что сложность довольно высока).

1) Развернуть, отбросив производственную базу данных и импортируя MySqldump базы данных о разработке. Необязательно запустите резервную экскурсию на поиск/замените любые твердые абсолютные ссылки, которые ссылаются на URL-адрес в дампе SQL. После импорта Dev DB в Prod автоматически запустите операторы SQL (обычно через скрипт) после этого, чтобы изменить любые настройки, которые отличаются для Prod, чем DEV (например, у вас есть в переменных. Некоторые настройки соединения для подключения к внешним системам, которые вам нужно Измените, чтобы указать на внешние системы Prod вместо версии DEV).

2) Используйте Функции модуль, как упомянуто Budda, для настройки администратора и используйте Экспорт узла модуль для экспорта/импорта контента в сочетании с Удалить все модуль. Итак, рабочий процесс:

  1. Используйте node_export и функции для экспортных узлов/функций в файлы
  2. Необязательно (и, надеюсь,) контроль версий
  3. Загрузить файлы в систему Prod
  4. Используйте интерфейс Drush или Admin для загрузки функций
  5. Используйте Drush Delete-All или Admin Interface, чтобы удалить все узлы типов, которые вы хотите импортировать
  6. Используйте Drush Ne-Import или интерфейс администратора, чтобы импортировать узлы из экспортированного вами файла узлов.

Одним из примечания я настоятельно бы предложил принять стандартный рабочий процесс, где контент идет только в одном направлении. Либо dev -> prod или prod -> dev (я предпочитаю это).

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

Dills Databases of Live Site Copy & Development Copy of Site в файле SQL (используйте те же параметры и настройки для обоих дампов).
Затем сравните оба файла SQL, используя небольшой инструмент сравнения Экзамен. Анкет Он будет отображать различия в файлах бок о бок с разными цветами. Вы можете напрямую прыгать в различия также (без прокрутки). Изучите различия и добавить строки в файл SQL Live File. Убедитесь, что в этом файле нет абсолютного пути/URL среды разработки. Это сделано! Время восстановить базу данных для живого сайта.
Сделайте вашу жизнь проще: На первом шаге сбросьте только те таблицы, которые изменяются. Например, если вы отредактировали модуль в разработке, который предназначен для отдельной таблицы, сбросите только эту таблицу. Если вы не уверены в конкретной таблице, весь дамп базы данных в порядке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top