Утилита для превращения результатов экспорта из Atlassean-Confluence (xml, содержащие сведения о выгруженных пространствах) в sql-скрипт для запитывания БД данными о сущностях в пространстве и отношениях между ними. Схема преобразования:
- Блоги и страницы -> записи в таблицу wiki.block_page
- Комментарии с блогам/страницам -> записи в таблицу wiki.comment
- Теги -> Теги с дублирующими именами удаляются, id тегов заменяются на id тега-синонима
- Связи тегов с сущностями -> wiki.block_pages2tags
Все спецтеги atlassean (ac:layout, ac:layout-section, ac:layout-cell, ac:image, ac:link, ac:attachment) превращаются в div/img/a с соответствующим классом (grid, grid-row, grid-cell, link-outer, link-inner). Макросы atlassean (ac:structured-macro) перемываются в обычную html-разметку (статический контент) или пустые теги для монтирования runtime-контента (дочерние страницы, древо внутренней навигации страницы и т.д.)
Перемывка запускается командой __ $ node --max-old-space-size=XX parser.js __. В перемывке обрабатываются все xml-файл, сложенные в папку ./src_xml. Для обработки "тяжелых" (~ 200 - 300 Мб) пространств необходимо выделить скрипту дополнительную память (для перемывки пространств с общим размером 624 Мб потребная оперативная память __ XX __ = 5120 Мб). Результат перемывки сохраняется в папке ./output отдельным sql
Перед запуском убедиться, что подхвачены все зависимости (__ npm i __)
$ node --max-old-space-size=6144 parser.js result_name=test_migration
Перемывка запускается с выделенным объемом памяти в 6144 Мб, конечный результат будет сохранен в test_migration.sql
- result_name - имя конечного результата, если параметр упущен - то confluence_export2sql.sql
- preset_block_id - задаваемый по умолчанию тип блока в контенте, должен соответствовать одному из типов блоков в wiki.block_types (По умолчанию - 1111, блоки Confluence, рендерятся через HtmlConfluence )
- wipe_output - стирание предыдущих результатов перемывки при сохранении нового. По умолчанию - false