This script ist to apply all unapplied patches from a directory to the local idempiere database. The original script from Carlos Ruiz downloads the scripts from the jenkins server. This one can be used to apply all the patches from a local build.
# # Contributor: Carlos Ruiz - globalqss # June 27, 2013 # # Modified by Markus Bozem, January 2, 2016 # # Script to synchronize your installation with patches in a given directory set -e DATABASE=idempiere USER=adempiere FOLDER=$1 if [ -n "$2" ] then export PGPASSWORD=$2 fi if [ -d "$1" -a -n "$1" ] then echo "Sync with $1" else echo "Usage syncAppliedDir directory [password]" exit 1 fi BASEDIR=`dirname $0` cd $BASEDIR > /tmp/lisFS.txt psql -h localhost -d $DATABASE -U $USER -q -t -c "select name from ad_migrationscript" | sed -e 's:^ ::' | grep -v '^ | sort > /tmp/lisDB.txt if [ -d ${FOLDER}/postgresql ] then cd ${FOLDER}/postgresql ls *.sql | sort >> /tmp/lisFS.txt cd ../.. fi sort -o /tmp/lisFS.txt /tmp/lisFS.txt sort -o /tmp/lisDB.txt /tmp/lisDB.txt MSGERROR="" APPLIED=N for i in `comm -13 /tmp/lisDB.txt /tmp/lisFS.txt` do SCRIPT="${FOLDER}/postgresql/$i" OUTFILE=/tmp/`basename "$i" .sql`.out echo "Start script $SCRIPT" psql -h localhost -d $DATABASE -U $USER -f "$SCRIPT" 2>&1 | tee "$OUTFILE" if fgrep "ERROR: FATAL:" "$OUTFILE" > /dev/null 2>&1 then MSGERROR="$MSGERROR\n**** ERROR ON FILE $OUTFILE - Please verify ****" fi APPLIED=Y done if [ x$APPLIED = xY ] then for i in processes_post_migration/postgresql/*.sql do OUTFILE=/tmp/`basename "$i" .sql`.out psql -h localhost -d $DATABASE -U $USER -f "$i" 2>&1 | tee "$OUTFILE" if fgrep "ERROR: FATAL:" "$OUTFILE" > /dev/null 2>&1 then MSGERROR="$MSGERROR\n**** ERROR ON FILE $OUTFILE - Please verify ****" fi done fi if [ -n "$MSGERROR" ] then echo "$MSGERROR" fi