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

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

39 голосов | спросил Chaulky 3 MaramThu, 03 Mar 2011 03:34:27 +03002011-03-03T03:34:27+03:0003 2011, 03:34:27

3 ответа


15

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

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

ответил budda 3 MaramThu, 03 Mar 2011 03:38:12 +03002011-03-03T03:38:12+03:0003 2011, 03:38:12
2

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

1) Разверните, удалив производственную базу данных и импортируя mysqldump базы данных разработки. Необязательно, запустите регулярное выражение для поиска /замены заранее на любых жестко закодированных абсолютных ссылках, которые ссылаются на URL-адрес разработчика в дампе SQL. После импорта dev db в prod автоматически запускайте операторы SQL (обычно через скрипт), чтобы изменить любые параметры, которые отличаются для prod, чем dev (например, возможно, у вас есть в таблице переменных некоторые параметры подключения для подключения к внешним системам, которые вам нужно переключитесь на внешние внешние системы, а не на версию dev).

2) Используйте Функции , как указано Budda, для настроек администратора и используйте < a href = "http://drupal.org/project/node_export" rel = "nofollow"> Node Export модуль для экспорта /импорта содержимого в сочетании с Удалить все . Итак, рабочий процесс:

  1. использовать node_export и функции для экспорта узлов /функций в файлы
  2. Необязательно (и, надеюсь) контроль версий
  3. Загрузка файлов в систему prod
  4. Использовать интерфейс drush или admin для загрузки функций.
  5. Использовать drush delete-all или админ-интерфейс для удаления всех узлов типов, которые вы хотите импортировать.
  6. Используйте drush ne-import или интерфейс администратора для импорта узлов из файла узлов, который вы экспортировали.

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

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

ответил coderintherye 3 MaramThu, 03 Mar 2011 03:54:06 +03002011-03-03T03:54:06+03:0003 2011, 03:54:06
1

Базы данных дампов для копирования в реальном времени и & создайте копию сайта в файле SQL (используйте те же параметры и настройки для обеих дампов).
Затем сравните оба файла SQL с помощью небольшого инструмента сравнения ExamDiff . Он будет отображать различия файлов рядом друг с другом с разными цветами. Вы также можете прямо перейти к различиям (без прокрутки). Изучите отличия & добавлять /редактировать строки в файл SQL в реальном времени. Убедитесь, что в этом файле нет абсолютного пути /URL-адреса среды разработки. Вот и все! Время восстановления базы данных для живого сайта.
Сделайте вашу жизнь проще: . На первом этапе дампируйте только те таблицы, которые были изменены. Например, если вы отредактировали модуль в копии разработки, который предназначен для отдельной таблицы, дампируйте только эту таблицу. Если вы не уверены в конкретной таблице, весь дамп базы данных прекрасен.

ответил user931 3 MaramThu, 03 Mar 2011 04:57:42 +03002011-03-03T04:57:42+03:0004 2011, 04:57:42

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132