Script for updating handle prefixes (e.g. for moving from development to production)

git-svn-id: http://scm.dspace.org/svn/repo/trunk@1416 9c30dcfa-912a-0410-8fc2-9e0234be79fd
This commit is contained in:
Scott Yeadon
2006-02-10 01:01:31 +00:00
parent ae2b3cfb71
commit 3385142b53
3 changed files with 102 additions and 0 deletions

View File

@@ -1,5 +1,8 @@
1.4 alpha 1
===========
(Scott Yeadon)
- Script for updating handle prefixes (e.g. for moving from development to production)
(Miguel Ferreira)
- Controlled vocabulary patch to provide search on classification terms, and
addition of terms during submission.

93
dspace/bin/update-handle-prefix Executable file
View File

@@ -0,0 +1,93 @@
#!/bin/sh
###########################################################################
#
# update_handle_prefix
#
# Version: $Revision$
#
# Date: $Date$
#
# Copyright (c) 2002, Hewlett-Packard Company and Massachusetts
# Institute of Technology. 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 Hewlett-Packard Company nor the name of the
# Massachusetts Institute of Technology nor the names of their
# 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.
#
###########################################################################
# Shell script for updating a handle prefix (e.g. when moving from development
# to production). Must be run as the dspace database user or equivalent.
#
# NOTE: Currently only compatible with installs running a PostgreSQL database
#
# validation and tool checking
if [ ! "$1" -o ! "$2" ]
then
echo
echo "Usage: update_handle_prefix <old handle> <new handle>"
echo
exit 1
fi
which awk > /dev/null
if [ $? -ne 0 ]
then
echo
echo "awk not found in your path, please add to your path before running this script"
echo
exit 1
fi
which psql > /dev/null
if [ $? -ne 0 ]
then
echo
echo "psql not found in your PATH, please add to your PATH and re-run script"
echo
exit 1
fi
# start the update
echo "If you continue, all handles in your repository with prefix $1 will be updated to have handle prefix $2"
echo -n "Continue? [y/n]: "
read choice
if [ "$choice" = y -o "$choice" = Y ]
then
# get the length of the old prefix for use in the overlay function
oldPrefixLen=`echo $1 | awk '{print length($1)}'`
echo "update handle set handle=overlay(handle placing '$2' from 1 for $oldPrefixLen) where handle like '$1%';" | psql
break
else
echo
echo "Update cancelled"
echo
break
fi

View File

@@ -341,6 +341,12 @@ alert.recipient (not essential but very useful!)</PRE>
<P>Note that since the DSpace code manages individual Handles, administrative operations such as Handle creation and modification aren't supported by DSpace's Handle server.</P>
<p>If you need to update the handle prefix on items created before the CNRI registration process you can run the <code><i>[dspace]</i>/bin/update-handle-prefix script</code>. You may need to do this if you loaded items prior to CNRI registration (e.g. setting up a demonstration system prior to migrating it to production). The script takes the current and new prefix as parameters. For example:</p>
<p><code><i>[dspace]</i>/bin/update-handle-prefix 123456789 1303</code></p>
<p>will change any handles currently assigned prefix 123456789 to prefix 1303, so for example handle 123456789/23 will be updated to 1303/23 in the database.</p>
<H2><A NAME="checking">Checking Your Installation</A></H2>
<p>TODO</p>