Відмінності між версіями «Оновлення DSpace»

м (Сховище assetstore)
м (Бекапи)
Рядок 45: Рядок 45:
 
Детальніше про [[Встановлення DSpace на ОС Debian|встановлення DSpace]].
 
Детальніше про [[Встановлення DSpace на ОС Debian|встановлення DSpace]].
  
== Бекапи ==
+
== Бекапи 1.5.2 ==
  
 
Тека бекапу БД DSpace 1.5.2:
 
Тека бекапу БД DSpace 1.5.2:
Рядок 53: Рядок 53:
 
Сюди копіюємо бекапи
 
Сюди копіюємо бекапи
  
pg_dumpall_elartu_02-20-2012_13-27.sql.bz2
+
pg_dumpall_elartu_02-20-2012_13-27.sql.bz2
 
+
pg_dump_dspace_elartu_02-20-2012_13-27.tar.bz2
pg_dump_dspace_elartu_02-20-2012_13-27.tar.bz2
+
assetstore_elartu_02-20-2012_17-52.tar.bz2
 
 
assetstore_elartu_02-20-2012_17-52.tar.bz2
 
  
 
та розпаковуємо їх
 
та розпаковуємо їх

Версія за 09:24, 22 лютого 2012

Оновлення 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_6_2_Postgres_8_4.tar.bz2

для усєї БД:

sudo -u postgres pg_dumpall -U postgres | pbzip2 -9 > /home/dspace/backups/pg_dumpall__DSpace_1_6_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

Див. також

Посилання