2008-02-20 05:09:01 +07:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# This formats all the SQL files in the specified directory so that
|
|
|
|
# they can be executed by psql. There are two modes -- a 'testing'
|
|
|
|
# mode (the default mode -- this strips out all the "commit" statements)
|
|
|
|
# and a commit mode for deployment. You need to pipe the output of this
|
|
|
|
# script into sqlplus, for example:
|
|
|
|
# ./migrate.sh 313-314 commit | psql -U adempiere -d adempiere > 313-314.lst
|
|
|
|
|
|
|
|
# Original contribution by by Chris Farley - northernbrewer
|
|
|
|
# Adapted to postgresql by Carlos Ruiz - globalqss
|
|
|
|
|
2008-02-21 05:39:29 +07:00
|
|
|
# CarlosRuiz - added multidirectory management 2008/02/20
|
2008-12-16 17:31:29 +07:00
|
|
|
# Michael Judd - modified for restructure of migration directory 2008/12/16 [FR 2432892]
|
2008-02-21 05:39:29 +07:00
|
|
|
|
2008-02-20 05:09:01 +07:00
|
|
|
if [ -z "$1" ]; then
|
2008-02-21 05:39:29 +07:00
|
|
|
echo "Usage: $0 [DIRECTORY ... DIRECTORY] [commit]"
|
2008-02-20 05:09:01 +07:00
|
|
|
exit 0
|
|
|
|
fi
|
2008-02-21 05:39:29 +07:00
|
|
|
DIRINI=$1
|
|
|
|
COMMIT=0
|
|
|
|
while [ $# -gt 0 ]
|
|
|
|
do
|
|
|
|
DIR=$1
|
|
|
|
shift
|
|
|
|
if [ "$DIR" = "commit" ]; then
|
|
|
|
COMMIT=1
|
|
|
|
else
|
2008-12-16 17:31:29 +07:00
|
|
|
for file in $DIR/*.sql; do
|
2008-02-21 05:39:29 +07:00
|
|
|
echo "SELECT '`basename $file`' AS Filename;"
|
2008-05-31 09:43:50 +07:00
|
|
|
echo
|
2008-02-21 05:39:29 +07:00
|
|
|
cat $file | dos2unix | sed 's/commit[ ]*;//I'
|
|
|
|
echo
|
2008-05-31 09:43:50 +07:00
|
|
|
echo
|
2008-02-21 05:39:29 +07:00
|
|
|
done
|
|
|
|
fi
|
2008-02-20 05:09:01 +07:00
|
|
|
done
|
2008-12-16 17:31:29 +07:00
|
|
|
if [ -d $DIRINI/post_migration ]
|
2008-02-20 05:09:01 +07:00
|
|
|
then
|
2008-12-16 17:31:29 +07:00
|
|
|
for file in $DIRINI/post_migration/*.sql; do
|
2008-02-20 05:09:01 +07:00
|
|
|
echo "SELECT '`basename $file`' AS Filename;"
|
2008-05-31 09:43:50 +07:00
|
|
|
echo
|
2008-02-20 05:09:01 +07:00
|
|
|
cat $file | dos2unix | sed 's/commit[ ]*;//I'
|
|
|
|
echo
|
2008-05-31 09:43:50 +07:00
|
|
|
echo
|
2008-02-20 05:09:01 +07:00
|
|
|
done
|
|
|
|
fi
|
2008-12-16 17:31:29 +07:00
|
|
|
if [ -d $DIRINI/my_processes_post_migration ]
|
2008-03-17 21:29:43 +07:00
|
|
|
then
|
2008-12-16 17:31:29 +07:00
|
|
|
for file in $DIRINI/my_processes_post_migration/*.sql; do
|
2008-03-17 21:29:43 +07:00
|
|
|
echo "SELECT '`basename $file`' AS Filename;"
|
2008-05-31 09:43:50 +07:00
|
|
|
echo
|
2008-03-17 21:29:43 +07:00
|
|
|
cat $file | dos2unix | sed 's/commit[ ]*;//I'
|
|
|
|
echo
|
2008-05-31 09:43:50 +07:00
|
|
|
echo
|
2008-03-17 21:29:43 +07:00
|
|
|
done
|
|
|
|
fi
|
2008-02-21 05:39:29 +07:00
|
|
|
if [ $COMMIT -eq 1 ]
|
|
|
|
then
|
|
|
|
echo "COMMIT;"
|
2008-02-20 05:09:01 +07:00
|
|
|
else
|
2008-02-21 05:39:29 +07:00
|
|
|
echo "ROLLBACK;"
|
2008-02-20 05:09:01 +07:00
|
|
|
fi
|
|
|
|
echo
|
2008-03-21 08:37:57 +07:00
|
|
|
echo "\quit"
|