TASKPM/debian/navalplan.preinst
Nacho Barrientos 2f1f3fca84 Add postinst script
JDBC driver link creation moved to postinst to circunvent problems
introduced by old navalplan packages deleting the link when the
package is being removed.
2011-12-01 08:58:17 +01:00

95 lines
2.6 KiB
Bash
Executable file

#! /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..."
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
}
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`
chmod 600 $PGPASSFILE
old_db_dump=`mktemp`
chown $navalplan_admin_user:root $old_db_dump;
chmod 660 $old_db_dump;
# 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
echo "Dumping old database..."
su - -s /bin/sh $navalplan_admin_user -c "pg_dump $navalplan_db >> $old_db_dump" > /dev/null
echo "Creating and populating new database...";
execute_sql_as_admin "CREATE DATABASE $libreplan_db;"
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;"
echo "*:*:*:*:$libreplan_passwd" > $PGPASSFILE
push_sql_from_file_as_user $old_db_dump $libreplan_user $libreplan_db
rm $PGPASSFILE $old_db_dump
fi
#DEBHELPER#