/confluence-2-sql

Node.js utility for transforming XML exported from Atlassean Confluence into sql script

Primary LanguageJavaScript

Преобразователь atlassean-confluence -> sql

Утилита для превращения результатов экспорта из Atlassean-Confluence (xml, содержащие сведения о выгруженных пространствах) в sql-скрипт для запитывания БД данными о сущностях в пространстве и отношениях между ними. Схема преобразования:

  1. Блоги и страницы -> записи в таблицу wiki.block_page
  2. Комментарии с блогам/страницам -> записи в таблицу wiki.comment
  3. Теги -> Теги с дублирующими именами удаляются, id тегов заменяются на id тега-синонима
  4. Связи тегов с сущностями -> 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

Параметры

  1. result_name - имя конечного результата, если параметр упущен - то confluence_export2sql.sql
  2. preset_block_id - задаваемый по умолчанию тип блока в контенте, должен соответствовать одному из типов блоков в wiki.block_types (По умолчанию - 1111, блоки Confluence, рендерятся через HtmlConfluence )
  3. wipe_output - стирание предыдущих результатов перемывки при сохранении нового. По умолчанию - false