2007年2月1日更新

DSpaceの運用・管理

コレクション間の移動

あるアイテムの集合を、現在所属しているコレクションとは別のコレクションに移動させる。

例として、1つのコレクションに登録されている論文アイテムを、巻(Volume)の値に対応したコレクションに振り分ける作業を行なう。作業は、DSpaceのWebインターフェースおよびsql文を用いて行なう。

コレクションの作成

DSpaceにおいて、あるコミュニティの元に、「第1巻」「第2巻」という2つのコレクションを作成する。collection_id(DSpace内部で利用される値)は、それぞれ、33,34とする。

第1巻に収録されている論文については、メタデータcitation.volume(これのmetadata_field_idは87とする)に、"Vol.1"と、また第2巻については、"Vol.2"という値が入っていることにする。

psqlの起動

PostgreSQLのスーパーユーザー(dspaceなど)でログインし、

> psql
dspace=#

とする。これで、SQL文を入力しデータベースを操作することができるようになる。

collection_idの変更

テーブルitemのowning_collectionを、元のID(32)から新ID(33)へと変更する。

dspace=# update item set owning_collection=33 where item.item_id IN (select item
_id from metadatavalue where metadata_field_id = 87 AND text_value = 'Vol.1') AND owning_collection=32;

テーブルcollection2itemのcollection_idを、元のID(32)から新ID(33)へと変更する。

dspace=# update collection2item set collection_id=33 where collection2item.item_
id IN (select item_id from metadatavalue where metadata_field_id = 87 AND text_v
alue = 'Vol.1') AND collection_id=32;

コレクション「第2巻」についても同じ作業を行なう。

(注) "Vol.1"という値だけでは、第1巻の論文かどうか判断しきれない場合には、条件を増やす必要がある。

データの一括置換

メタデータ中の特定の文字列を一括して置換したい場合がある。例えば、metadata_field_idが80の項目について、"aaa"という部分を"bbb"に全て置換したい場合、以下のようなsql文を実行すればよい。

dspace=# update metadatavalue set text_value = replace(text_value, 'aaa', 'bbb') where metadata_field_id = 80;