Оновлення DSpace

Версія від 12:21, 13 травня 2017, створена Dubyk (обговореннявнесок) (Оновлення DSpace 1.5.2 »» 1.8.1 (ЗАСТАРІЛО))

Оновлення DSpace

Оновлення DSpace 1.5.2 »» 5.6

Якщо різниця між версіями DSpace значна, рекомендується встановити DSpace начисто та перенести БД і сховище.


Оновлення DSpace 1.5.2 »» 1.8.1 (ЗАСТАРІЛО)

Відхід від рекомендованого оновлення

В офіційних керівництвах рекомендується робити покрокові оновлення, зокрема:

Однак описаний в цих керівництвах метод не дав результату. Декілька причин:

1) Конфігураційний файл dspace.cfg — рекомендується вносити в нього усі зміни, що з’являються від версії до версії, а їх доволі багато. Виявилося простіше перенести персональні налаштування у новий dspace.cfg.

2) Скомпілювати DSpace на 1.6.2 так і не вдалося.

Отож розглядається варіант встановлення нового DSpace 1.8.1 та перенесення на нього усіх даних та налаштувань.

Резервна копія

Копія БД:

для таблиці „dspace“:

sudo -u postgres pg_dump -Ft -b -U dspace dspace  | pbzip2 -9 > /home/dspace/backups/pg_dump__dspace__DSpace_1_5_2_Postgres_8_4.tar.bz2

для усєї БД:

sudo -u postgres pg_dumpall -U postgres | pbzip2 -9 > /home/dspace/backups/pg_dumpall__DSpace_1_5_2_Postgres_8_4.sql.bz2

Архівування сховища „assetstore“:

tar -cvf assetstore_dspace.tar /usr/share/dspace/assetstore/
pbzip2 -f assetstore_dspace.tar

Встановлення Debian GNU/Linux

Детальніше про встановлення Debian.

Встановлення DSpace

Детальніше про встановлення DSpace.

Бекапи 1.5.2

Тека бекапу БД DSpace 1.5.2:

mkdir /home/dspace/backups/1_5_2

Сюди копіюємо бекапи

pg_dumpall_elartu_02-20-2012_13-27.sql.bz2
pg_dump_dspace_elartu_02-20-2012_13-27.tar.bz2
assetstore_elartu_02-20-2012_17-52.tar.bz2

та розпаковуємо їх

pbzip2 -d pg_dumpall_elartu_02-20-2012_13-27.sql.bz2
pbzip2 -d pg_dump_dspace_elartu_02-20-2012_13-27.tar.bz2

pbzip2 -d assetstore_elartu_02-20-2012_17-52.tar.bz2
tar -xf assetstore_elartu_02-20-2012_17-52.tar

Невдала спроба з „pg_restore“

sudo -u postgres pg_restore -c -d dspace -U postgres -Ft pg_dump_dspace_elartu_02-20-2012_13-27.tar

sudo -u postgres psql -U dspace -f /home/dspace/source/dspace-1.8.1-src-release/dspace/etc/postgres/database_schema_15-16.sql dspace
sudo -u postgres psql -U dspace -f /home/dspace/source/dspace-1.8.1-src-release/dspace/etc/postgres/database_schema_16-17.sql dspace
sudo -u postgres psql -U dspace -f /home/dspace/source/dspace-1.8.1-src-release/dspace/etc/postgres/database_schema_17-18.sql dspace

sudo -u postgres psql -U dspace -f /home/dspace/source/dspace-1.8.1-src-release/dspace/etc/postgres/update-sequences.sql dspace

На жаль, при цьому, у виводі 1-ої команди багато помилок і БД відновлюється не повністю (відсутні зібрання та підфонди, групи користувачів і т.п.). Таблиця „collection“ пуста. Можливо це зв'язано з різницею версію Posgres 8.4 та 9.1.

Зокрема були такі помилки:

pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 2145; 2606 25505 FK CONSTRAINT community2community_child_comm_id_fkey dspace
pg_restore: [archiver (db)] could not execute query: ERROR:  constraint "community2community_child_comm_id_fkey" of relation "community2community" does not exist
   Command was: ALTER TABLE ONLY public.community2community DROP CONSTRAINT community2community_child_comm_id_fkey;

pg_restore: [archiver (db)] Error from TOC entry 2147; 2606 25522 FK CONSTRAINT community2collection_collection_id_fkey dspace
pg_restore: [archiver (db)] could not execute query: ERROR:  constraint "community2collection_collection_id_fkey" of relation "community2collection" does not exist
   Command was: ALTER TABLE ONLY public.community2collection DROP CONSTRAINT  community2collection_collection_id_fkey;

Вдала спроба з бекапом „pg_dumpall“

Це варіант відновлення всієї БД Postgres (а не лише таблиці „dspace“ як у попередньому випадку).

Базу даних можна витерти через „phppgadmin“. SQL з бекапу „pg_dumpall“ створить її наново.

sudo -u postgres psql -U postgres -f pg_dumpall_elartu_02-20-2012_13-27.sql

sudo -u postgres psql -U dspace -f /home/dspace/source/dspace-1.8.1-src-release/dspace/etc/postgres/database_schema_15-16.sql dspace
sudo -u postgres psql -U dspace -f /home/dspace/source/dspace-1.8.1-src-release/dspace/etc/postgres/database_schema_17-18.sql dspace
sudo -u postgres psql -U dspace -f /home/dspace/source/dspace-1.8.1-src-release/dspace/etc/postgres/database_schema_17-18.sql dspace

sudo -u postgres psql -U dspace -f /home/dspace/source/dspace-1.8.1-src-release/dspace/etc/postgres/update-sequences.sql dspace

Також

sudo -u dspace /dspace/bin/dspace index-init

При цьому пароль до БД „dspace“ такий як у версії старій 1.5.2. Отож, якщо він відрізняється, то його також потрібно поправити й у dspace.cfg.

Сховище „assetstore“

Переміщуємо вміст сховища „assetstore“ 1.5.2 до теки /dspace/assetstore

та виставляємо права

sudo chown -R tomcat6:tomcat6 /dspace/assetstore

Перегенерація пошукового індексу

sudo -u dspace /dspace/bin/dspace index-init

Налаштування

Щодо додаткових налаштувань та адаптацій див. тут: Налаштування DSpace.

Див. також

Посилання