Перенесення даних із сайту на сайт (Drupal), БлогСтікер
Навіщо це потрібно?
Виділимо 2 основні випадки, коли це необхідно:
Тут і виникають питання, які потрібно вирішувати.
Чому не скопіювати таблиці чи всю БД?
Модулі для перенесення вмісту?
Нарешті, ми дійшли до найцікавішого – модулів Drupal, які здійснюють перенесення контенту (я перерахую лише основні, найвідоміші):
- Node export(як зрозуміло з назви) експортує nod-и, простий у використанні.
- Taxonomy export, відповідно, переносить словники та терміни таксономії. Так само простий і виконує своє завдання чудово.
- модуліNode import, Menu import, User importя об'єднані в одну групу, тому що вони здійснюють лише імпорт, і в основному використовуються для перенесення матеріалів з інших систем. Експорт формувати потрібно вручну.
- самий багатофункціональний модуль -Deployment, а точніше зв'язкаDeployment + Services. На ньому зупинимося докладніше.
Далі обговоримо кожен із пунктів окремо.
Node export
Як вже написано вище, експортує nod-и, простий у використанні. Вміє експортувати nod-и як по одній штуці, так і одразу. Віддає результат у текстовому полі або як файл (це налаштовується). Також можна налаштувати поля, які будуть очищатися під час експорту, причому для кожного вмісту типу.
Імпортувати можна також, вставивши текст імпорту в текстове поле або завантаживши файл.
Переваги :
- Розуміє CCK поля (стандартні, Imagefield, Upload).
- Експортує вкладення, картинки. Причому за замовчуванням експортує все в один файл: немає окремо картинок, окремого вмістуnod-и. Це дуже радує.
- Можливість роботи через Drush. Підтримка Drush зазвичай дуже прискорює роботу.
Недоліки :
Висновок: сайт-одержувач має бути ідентичним сайту-відправнику.
Taxonomy export
Модуль чудово справляється зі своїм завданням. Може переносити як визначення словників, так і словники з термінами, зберігаючи ієрархію та відповідність «контент-тайп - словник», якщо, звичайно, такий контент-тайп на сайті-одержувачі існує.
Так само, як Node export, вміє віддавати дані як у браузер у текстове поле, так і у вигляді файлу. Вміє оновлювати існуючі словники та терміни. Одна головна умова – ідентифікатори словників та термінів повинні співпадати на сайті-відправнику та одержувачі.
Нестача одна. Немає сенсу використовувати модуль разом з Node export. Якщо ви хочете зберегти залежності між nod-ами і термінами на сайті-одержувачі, то у вас нічого не вийде, тому що модуль створює записи з новими ідентифікаторами відправнику). Усі зв'язки губляться.
Node import, Menu import, User import
Скажу лише пару слів. Ці модулі здійснюють імпорт із CSV-файлів, які необхідно перед цим сформувати. Ці модулі не експортують, оскільки вони використовуються в основному для перенесення матеріалів з інших систем на Drupal.
Deployment + Services
Тепер ми підійшли до головного модуля, якому я приділю найбільшу увагу. Основний принцип роботи модуля (рис. 2) у тому, що, так би мовити, він займається імпортом даних на сайті-одержувачі. Точніше відправляє потрібні команди, на які реагує модуль Services на сайті-одержувачі. Все, що потрібно зробити, це вибрати елементи для відправки та запуститиdeployment.
Склад модуля Deployment :
- Deploy book pages
- Deploy Comments
- Deploy Content Type.
- Deploy Dates
- Deploy Files
- Deploy Nodereferences
- Deploy System Settings
- Deploy Userreferences
- Deploy Views
- Node Deployment
- Taxonomy Deployment
- User Deployment
Позитивні якості :
Недоліки :
- Працює тільки з Services 6.x-2.x. Третю версію Services не підтримує та не збирається.
- Не підтримує Filefield/Imagefield Всі вкладення та зображення втрачаються.
- Конфлікт з модулем Upload Конфлікт, який полягає він у тому, що якщо на сайті-одержувачі включений модуль Upload, то nod-и переноситися не будуть, без жодних помилок та попереджень. У лозі деплойменту буде зазначено, що nod-а вдало відправлена, а насправді її не буде. Відбувається це через те, що модуль Upload якимось чином змінює форму створення nod-и, після чого деплоймент коректно працювати з нею більше не зможе.
Deployment plans
Наприклад, можна створити деплоймент план «Налаштування» та додати туди налаштування потрібних нам модулів. Після цього надіслати всі налаштування за один раз. На рис. 3 ми додаємо в деплоймент план 2 ноди. Модуль сам розпізнає зв'язки та, відповідно, додає їх автоматично.