Как переключить постоянство jackrabbit с файловой системы на базу данных?

У меня есть портал Liferay, настроенный на использование постоянства файловой системы для jackrabbit.

Кажется, что этот режим сохранения создает много файлов в файловой системе (пока что около 113 000), и я медленно достигаю квоты количества файлов на сервере.

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

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


Краткое обновление:

Мне удалось перейти на Liferay 6. Однако нет возможности перенести данные зайца из файловой системы в базу данных из Liferay; то, что предлагает панель «Миграция данных», — это переход с хука jcr на другой хук сохранения.

Моя первоначальная проблема заключалась не в том, чтобы иметь данные в базе данных, а в том, чтобы уменьшить количество файлов в файловой системе (ограничение квоты). Затем я переключился на FileSystemHook.

Вот количество файлов (find . | wc -l).

  • JCRHook: 107566
  • Файловая системаHook: 2810.

Не знаю, почему Jackrabbit создает так много файлов...


person ewernli    schedule 26.10.2010    source источник
comment
Привет, вы выяснили причину, по которой с помощью JCRHook создается слишком много файлов? Я просто пытаюсь определиться с реализацией, потому что у меня будет много файлов с множеством свойств примесей. Поэтому я боюсь, что если я выберу jackrabit BundleFsPersistenceManager с localFileSystem, я могу попасть в ту же ситуацию, что и вы   -  person lisak    schedule 17.03.2011


Ответы (2)


В Liferay 6 есть новая специальная страница в администрировании портала, предназначенная для облегчения такой миграции. Вы должны войти в систему как администратор (omniadmin, если у вас есть несколько экземпляров портала на вашем сервере) и перейти в панель управления. В панели «Администрирование сервера» щелкните меню «Миграция данных», и вам будет предложено выполнить миграцию из файловой системы в базу данных.

Похоже, вы еще не используете Liferay 6 (Glassfish WebSpace Server — это Liferay 5.2), поэтому есть несколько вариантов:

  • обновить сам портал с 5.x до 6.0.5, как описано в Liferay Wiki и используйте страницу миграции.
  • оставайтесь со своей версией и создайте специальный класс, вдохновленный теми, которые были предоставлены Liferay в версии 6.
  • экспортировать страницы сообщества (Liferay ARchive), создать новый портал с сохранением БД и импортировать страницы и их содержимое.

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

Арно

person Arnaud Deslandes    schedule 26.10.2010
comment
Спасибо за информацию. Сделаю клон рабочей среды локально для проверки перехода на 6.x. Проблема в том, что мы все еще придерживаемся старой модели прав 4.x и по моему опыту обновление всегда занимает много времени, но до сих пор мне всегда удавалось так или иначе (Мои заметки были здесь: bit.ly/92UFxF). В противном случае, думаю, я рассмотрю низкоуровневые варианты. - person ewernli; 28.10.2010
comment
для разрешений вы должны сначала запустить свой портал с разрешениями.user.check.algorithm=4, а затем использовать меню переноса данных: обновление алгоритма проверки разрешений является одним из вариантов. Я полностью согласен с вами по поводу времени, затраченного на обновление, и это новое меню — долгожданное дополнение. - person Arnaud Deslandes; 28.10.2010
comment
Краткое обновление: мне удалось установить LR 6 локально и обновить. Не проводил расширенный тест, но, похоже, пока работает. Алгоритм, который у меня есть, permissions.user.check.algorithm=2 вернулся из старых времен LR 4.x! Однако панель переноса данных работает на уровне ловушек. Поэтому он предлагает мне перенести документы в FileSystemHook, S3Hook и еще 2. Но не помогает мигрировать контент Jackrabbit (JCRHook), который, видимо, является черным ящиком для Liferay... И по какой-то неизвестной причине не предлагает com.liferay.portal.image.DatabaseHook для документов... - person ewernli; 08.11.2010
comment
Я перешел на FileSystemHook, что значительно уменьшило количество файлов на сервере. Вы получаете зеленую галочку! - person ewernli; 08.11.2010
comment
Рад, что у вас есть возможность обновиться. Вы должны увидеть улучшение скорости на страницах с большим количеством проверок разрешений. Кроме того, вам может быть интересно перейти на новую тему: например, мои пользователи, отвечающие за создание контента, предпочитают новую док-станцию. - person Arnaud Deslandes; 08.11.2010

Существует несколько способов миграции, большинство из них описаны в Jackrabbit Wiki:

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

person Thomas Mueller    schedule 26.10.2010
comment
Спасибо! Я попробую. - person ewernli; 28.10.2010
comment
Краткое обновление: RepositoryCopier поставляется только с jackrabbit 1.6, а у меня более старая версия jackrabbit. Я пытался адаптировать его без успеха. В крайнем случае я буду исследовать экспорт/импорт XML. - person ewernli; 08.11.2010