2011-11-30 10:54:45 +01:00
|
|
|
#! /bin/bash
|
|
|
|
|
|
|
|
|
|
base_dbconfig_data_dir="/usr/share/dbconfig-common/data"
|
|
|
|
|
|
|
|
|
|
install_upgrade_to() {
|
|
|
|
|
upgrade_file="$base_dbconfig_data_dir/libreplan/upgrade/pgsql/$1"
|
|
|
|
|
echo "Applying SQL statements to upgrade to version $1..."
|
2011-11-30 16:14:00 +01:00
|
|
|
push_sql_from_file_as_user $upgrade_file $navalplan_user $navalplan_db
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
push_sql_from_file_as_user() {
|
|
|
|
|
filepath=$1
|
|
|
|
|
username=$2
|
|
|
|
|
database=$3
|
|
|
|
|
psql -U $username -h $database_host \
|
|
|
|
|
$database < $filepath > /dev/null 2>&1
|
2011-11-30 10:54:45 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
execute_sql_as_admin() {
|
|
|
|
|
sql=$1
|
|
|
|
|
su - -s /bin/sh $navalplan_admin_user -c "psql -c \"$sql\"" > /dev/null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if [[ $1 = upgrade && -r /etc/dbconfig-common/libreplan.conf
|
|
|
|
|
&& -r /etc/dbconfig-common/navalplan.conf ]]
|
|
|
|
|
then
|
|
|
|
|
old_version=$2
|
|
|
|
|
|
|
|
|
|
. /etc/dbconfig-common/libreplan.conf
|
|
|
|
|
libreplan_user=${dbc_dbuser}
|
|
|
|
|
libreplan_passwd=${dbc_dbpass}
|
|
|
|
|
libreplan_db=${dbc_dbname}
|
|
|
|
|
|
|
|
|
|
. /etc/dbconfig-common/navalplan.conf
|
|
|
|
|
navalplan_user=${dbc_dbuser}
|
|
|
|
|
navalplan_passwd=${dbc_dbpass}
|
|
|
|
|
navalplan_db=${dbc_dbname}
|
|
|
|
|
navalplan_admin_user=${dbc_dbadmin}
|
|
|
|
|
|
|
|
|
|
if [ -z "${dbc_dbhost}" ] ; then
|
|
|
|
|
database_host='localhost'
|
|
|
|
|
else
|
|
|
|
|
database_host=${dbc_dbhost}
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
export PGPASSFILE=`mktemp`
|
2011-11-30 16:14:00 +01:00
|
|
|
chmod 600 $PGPASSFILE
|
|
|
|
|
|
|
|
|
|
old_db_dump=`mktemp`
|
|
|
|
|
chown $navalplan_admin_user:root $old_db_dump;
|
|
|
|
|
chmod 660 $old_db_dump;
|
2011-11-30 10:54:45 +01:00
|
|
|
|
|
|
|
|
# Stop tomcat to flush active connections.
|
|
|
|
|
if [ -x /etc/init.d/tomcat6 ] ; then
|
|
|
|
|
if [ -x "$(which invoke-rc.d 2> /dev/null)" ] ; then
|
|
|
|
|
invoke-rc.d tomcat6 stop
|
|
|
|
|
else
|
|
|
|
|
/etc/init.d/tomcat6 stop
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "Dropping newly created empty database...";
|
|
|
|
|
execute_sql_as_admin "DROP DATABASE $libreplan_db;"
|
|
|
|
|
|
|
|
|
|
echo "Trying to apply upgrades to old database..."
|
|
|
|
|
|
|
|
|
|
echo "*:*:*:*:$navalplan_passwd" > $PGPASSFILE
|
|
|
|
|
|
|
|
|
|
dpkg --compare-versions $old_version "<<" "1.0.0-1"
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
install_upgrade_to "1.0.0"
|
|
|
|
|
fi
|
|
|
|
|
dpkg --compare-versions $old_version "<<" "1.1.0-1"
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
install_upgrade_to "1.1.0"
|
|
|
|
|
fi
|
|
|
|
|
dpkg --compare-versions $old_version "<<" "1.2.0-1"
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
install_upgrade_to "1.2.0"
|
|
|
|
|
fi
|
|
|
|
|
|
2011-11-30 16:14:00 +01:00
|
|
|
echo "Dumping old database..."
|
|
|
|
|
su - -s /bin/sh $navalplan_admin_user -c "pg_dump $navalplan_db >> $old_db_dump" > /dev/null
|
2011-11-30 10:54:45 +01:00
|
|
|
|
2011-11-30 16:14:00 +01:00
|
|
|
echo "Creating and populating new database...";
|
|
|
|
|
execute_sql_as_admin "CREATE DATABASE $libreplan_db;"
|
2011-11-30 10:54:45 +01:00
|
|
|
execute_sql_as_admin "GRANT ALL PRIVILEGES ON DATABASE $libreplan_db TO $libreplan_user;"
|
|
|
|
|
execute_sql_as_admin "ALTER DATABASE $libreplan_db OWNER TO $libreplan_user;"
|
2011-11-30 16:14:00 +01:00
|
|
|
echo "*:*:*:*:$libreplan_passwd" > $PGPASSFILE
|
|
|
|
|
push_sql_from_file_as_user $old_db_dump $libreplan_user $libreplan_db
|
2011-11-30 10:54:45 +01:00
|
|
|
|
2011-11-30 16:14:00 +01:00
|
|
|
rm $PGPASSFILE $old_db_dump
|
2011-11-30 10:54:45 +01:00
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
#DEBHELPER#
|