-- -- database_schema_11-12.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.1 or 1.1.1 -- to the DSpace 1.2 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 community2community_seq; CREATE SEQUENCE communities2item_seq; ALTER TABLE Bitstream ADD sequence_id INTEGER; ALTER TABLE Item ADD owning_collection INTEGER; -- The following changes the last_modified column from a TIMESTAMP to a -- TIMESTAMP WITH TIME ZONE. It copies over existing values of last_modified. -- -- CAUTION: This assumes that the values of the original 'last_modified' -- column were in the *local time zone*. -- -- If you find that the original values in 'last_modified' are in *UTC*, -- (and this is not your local time zone), you will need to convert the -- values of your last_modified column to your local time zone in order -- for the following code to work. ALTER TABLE Item ADD COLUMN last_modified2 TIMESTAMP WITH TIME ZONE; UPDATE Item SET last_modified2 = last_modified; ALTER TABLE Item DROP COLUMN last_modified; ALTER TABLE Item RENAME last_modified2 TO last_modified; ALTER TABLE Bundle ADD name VARCHAR(16); ALTER TABLE Bundle ADD primary_bitstream_id INTEGER; ALTER TABLE Bundle ADD CONSTRAINT primary_bitstream_id_fk FOREIGN KEY (primary_bitstream_id) REFERENCES Bitstream(bitstream_id); CREATE TABLE Community2Community ( id INTEGER PRIMARY KEY, parent_comm_id INTEGER REFERENCES Community(community_id), child_comm_id INTEGER REFERENCES Community(community_id) ); CREATE TABLE Communities2Item ( id INTEGER PRIMARY KEY, community_id INTEGER REFERENCES Community(community_id), item_id INTEGER REFERENCES Item(item_id) ); DROP VIEW CommunityItemsByAuthor; CREATE VIEW CommunityItemsByAuthor as SELECT Communities2Item.community_id, ItemsByAuthor.* FROM ItemsByAuthor, Communities2Item WHERE ItemsByAuthor.item_id = Communities2Item.item_id ; DROP VIEW CommunityItemsByTitle; CREATE VIEW CommunityItemsByTitle as SELECT Communities2Item.community_id, ItemsByTitle.* FROM ItemsByTitle, Communities2Item WHERE ItemsByTitle.item_id = Communities2Item.item_id ; DROP VIEW CommunityItemsByDate; CREATE VIEW CommunityItemsByDate as SELECT Communities2Item.community_id, ItemsByDate.* FROM ItemsByDate, Communities2Item WHERE ItemsByDate.item_id = Communities2Item.item_id ; DROP VIEW CommunityItemsByDateAccession; CREATE VIEW CommunityItemsByDateAccession as SELECT Communities2Item.community_id, ItemsByDateAccessioned.* FROM ItemsByDateAccessioned, Communities2Item WHERE ItemsByDateAccessioned.item_id = Communities2Item.item_id ;