2010-10-26 4 views
3

У меня есть портал Liferay, который был настроен на использование файловой системы persitence для jackrabbit.Как перенести сохранность файла в базу данных?

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

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

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


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

мне удалось обновить Liferay 6. Там нет, однако нет возможности перенести Jackrabbit данные из файловой системы в базу данных внутри Liferay; то, что предлагает панель миграции данных, - это перенести с jcr-крючка на другой упорный крючок.

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

Укажите сумму счётчика (find . | wc -l).

  • JCRHook: 107566
  • FileSystemHook: 2810.

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

+0

Привет, вы обнаружили причину, по которой слишком много файлов, созданных с помощью JCRHook? Я просто пытаюсь принять решение о реализации, потому что у меня будет много файлов с большим количеством свойств mixin. Поэтому я боюсь, что если я выберу jackrabit BundleFsPersistenceManager с localFileSystem, я мог бы попасть в ту же ситуацию, что и вы – lisak

ответ

4

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

Похоже, что вы еще не в Liferay 6 (Glassfish WebSpace сервер является Liferay 5.2), так что есть несколько вариантов:

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

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

Arnaud

+0

Спасибо за информацию. Будет производить клонирование производственной среды локально, чтобы проверить миграцию на 6.x. Проблема в том, что мы все еще придерживаемся старой модели прав 4.x, и из моего опыта обновление всегда занимает много времени, но до сих пор я всегда преуспевал так или иначе (мои заметки были здесь: http: // бит. LY/92UFxF). В противном случае я думаю, что рассмотрю варианты низкого уровня. – ewernli

+0

для разрешений, вы должны сначала запустить свой портал с permissions.user.check.algorithm = 4, а затем использовать меню «Перенос данных»: одним из вариантов является обновление алгоритма проверки разрешений. Я полностью согласен с вами в том, что касается обновления, и это новое меню является очень приятным дополнением. –

+0

Краткое обновление: мне удалось локально установить LR 6 и обновить. Не делал расширенный тест, но, похоже, работает до сих пор. У меня есть алгоритм 'permissions.user.check.algorithm = 2' из старого времени LR 4.x! Однако панель переноса данных работает на уровне крючка. Поэтому он предлагает мне перенести документы в FileSystemHook, S3Hook и еще 2 человека. Но не помогает мигрировать содержимое Jackrabbit (JCRHook), который, по-видимому, является черным ящиком для Liferay ... И по какой-то неизвестной причине он не предлагает 'com.liferay.portal.image.DatabaseHook' для документов .. . – ewernli

3

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

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

+0

Спасибо! Я попробую их попробовать. – ewernli

+0

Краткое обновление: The RepositoryCopier поставляется только с jackrabbit 1.6, и у меня есть более ранняя версия jackrabbit. Я попытался адаптировать его без успеха. В крайнем случае я буду исследовать экспорт/импорт XML. – ewernli

Смежные вопросы