Как вы переносите поля CCK между средами в Drupal?

Content Construction Kit (CCK) - один из самых полезных модулей Drupal. Это позволяет вам легко добавлять настраиваемые поля к типу контента.

Тем не менее, эти новые поля создаются через сам Drupal и хранятся в базе данных. Это означает, что если вы изменяете поле CCK в своей среде разработки, вам необходимо вручную внести те же изменения в тестовую и производственную среды.

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

Я ищу метод, который позволяет мне экспортировать определения полей CCK, который поддерживает:

  • Импорт в новые среды (очевидно)
  • Создание новых полей

В идеале экспорт также будет поддерживать:

  • Определение различий
  • Модификация существующих полей
  • Удаление существующих полей
  • Какое-то разрешение конфликтов в ситуациях, когда данные конфликтуют с изменениями полей

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

3 ответа

Решение

Знаете ли вы о модуле Content Copy, который является частью стандартного пакета cck? Он предлагает функции экспорта / импорта для полей и целых типов контента в некоторой степени.

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

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

После включения проверьте новые вкладки экспорта и импорта в верхней части "/admin/content/types".

Это еще не все, но модуль функций позволит вам сделать это. Он упаковывает поля CCK (среди прочего) в модули drupal, которые вы можете распространять.

Я лично использую модуль Node Export + модуль Node Export File (в комплекте, для полей CCK / изображения).

Весь узел экспортируется в текстовое поле в виде ассоциативного массива. Форма импорта аналогична: вы вставляете массив узлов в текстовое поле. Эти процессы реализованы как операции с узлами, поэтому они могут выполняться массово (на странице /admin/content/node или в вашем пользовательском модуле развертывания).

Преимущество этого процесса заключается в том, что вы можете изменять данные узла при передаче.

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

Другие вопросы по тегам