mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-18 07:23:08 +00:00
[DS-297] Move PostgreSQL-specific SQL into etc/postgres for greater clarity
git-svn-id: http://scm.dspace.org/svn/repo/dspace/trunk@4427 9c30dcfa-912a-0410-8fc2-9e0234be79fd
This commit is contained in:
91
dspace/etc/postgres/database_schema_12-13.sql
Normal file
91
dspace/etc/postgres/database_schema_12-13.sql
Normal file
@@ -0,0 +1,91 @@
|
||||
--
|
||||
-- database_schema_12-13.sql
|
||||
--
|
||||
-- Version: $Revision$
|
||||
--
|
||||
-- Date: $Date$
|
||||
--
|
||||
-- Copyright (c) 2002-2009, The DSpace Foundation. All rights reserved.
|
||||
--
|
||||
-- Redistribution and use in source and binary forms, with or without
|
||||
-- modification, are permitted provided that the following conditions are
|
||||
-- met:
|
||||
--
|
||||
-- - Redistributions of source code must retain the above copyright
|
||||
-- notice, this list of conditions and the following disclaimer.
|
||||
--
|
||||
-- - Redistributions in binary form must reproduce the above copyright
|
||||
-- notice, this list of conditions and the following disclaimer in the
|
||||
-- documentation and/or other materials provided with the distribution.
|
||||
--
|
||||
-- - Neither the name of the DSpace Foundation nor the names of its
|
||||
-- contributors may be used to endorse or promote products derived from
|
||||
-- this software without specific prior written permission.
|
||||
--
|
||||
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
-- ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
-- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
-- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
-- HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
-- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
-- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
-- OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
-- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
-- TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
-- USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
-- DAMAGE.
|
||||
|
||||
--
|
||||
-- SQL commands to upgrade the database schema of a live DSpace 1.2 or 1.2.x
|
||||
-- to the DSpace 1.3 database schema
|
||||
--
|
||||
-- DUMP YOUR DATABASE FIRST. DUMP YOUR DATABASE FIRST. DUMP YOUR DATABASE FIRST. DUMP YOUR DATABASE FIRST.
|
||||
-- DUMP YOUR DATABASE FIRST. DUMP YOUR DATABASE FIRST. DUMP YOUR DATABASE FIRST. DUMP YOUR DATABASE FIRST.
|
||||
-- DUMP YOUR DATABASE FIRST. DUMP YOUR DATABASE FIRST. DUMP YOUR DATABASE FIRST. DUMP YOUR DATABASE FIRST.
|
||||
|
||||
CREATE SEQUENCE epersongroup2workspaceitem_seq;
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- create the new EPersonGroup2WorkspaceItem table
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
CREATE TABLE epersongroup2workspaceitem
|
||||
(
|
||||
id integer DEFAULT nextval('epersongroup2workspaceitem_seq'),
|
||||
eperson_group_id integer REFERENCES EPersonGroup(eperson_group_id),
|
||||
workspace_item_id integer REFERENCES WorkspaceItem(workspace_item_id),
|
||||
CONSTRAINT epersongroup2item_pkey PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- modification to collection table to support being able to change the
|
||||
-- submitter and collection admin group names
|
||||
-------------------------------------------------------------------------------
|
||||
ALTER TABLE collection ADD submitter INTEGER REFERENCES EPersonGroup( eperson_group_id );
|
||||
|
||||
ALTER TABLE collection ADD admin INTEGER REFERENCES EPersonGroup( eperson_group_id );
|
||||
|
||||
ALTER TABLE eperson ADD netid varchar(64) UNIQUE;
|
||||
|
||||
UPDATE collection SET submitter=(SELECT eperson_group_id FROM epersongroup WHERE epersongroup.name = 'COLLECTION_' || collection_id || '_SUBMIT');
|
||||
|
||||
UPDATE collection SET admin=(SELECT eperson_group_id FROM epersongroup WHERE epersongroup.name = 'COLLECTION_' || collection_id || '_ADMIN');
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- Additional indices for performance
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
-- index by resource id and resource type id
|
||||
CREATE INDEX handle_resource_id_and_type_idx ON handle(resource_id, resource_type_id);
|
||||
|
||||
-- Indexing browse tables update/re-index performance
|
||||
CREATE INDEX Communities2Item_item_id_idx ON Communities2Item( item_id );
|
||||
CREATE INDEX ItemsByAuthor_item_id_idx ON ItemsByAuthor(item_id);
|
||||
CREATE INDEX ItemsByTitle_item_id_idx ON ItemsByTitle(item_id);
|
||||
CREATE INDEX ItemsByDate_item_id_idx ON ItemsByDate(item_id);
|
||||
CREATE INDEX ItemsByDateAccessioned_item_id_idx ON ItemsByDateAccessioned(item_id);
|
||||
|
||||
-- Improve mapping tables
|
||||
CREATE INDEX Community2Collection_community_id_idx ON Community2Collection(community_id);
|
||||
CREATE INDEX Community2Collection_collection_id_idx ON Community2Collection(collection_id);
|
||||
CREATE INDEX Collection2Item_item_id_idx ON Collection2Item( item_id );
|
Reference in New Issue
Block a user