X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fcats%2Fcreate_postgresql_database.in;h=e5d8644b363fed931ed3a36665325567b3bb3a3d;hb=2d78ab3b53e7f238d1dfb06420ba403e743f0bb0;hp=624a8f1aba6c8fa2b44a9082e89add93cc982841;hpb=1797682f476e3866488aa0b19898695b084a94df;p=bacula%2Fbacula diff --git a/bacula/src/cats/create_postgresql_database.in b/bacula/src/cats/create_postgresql_database.in index 624a8f1aba..e5d8644b36 100644 --- a/bacula/src/cats/create_postgresql_database.in +++ b/bacula/src/cats/create_postgresql_database.in @@ -3,34 +3,59 @@ # shell script to create Bacula database(s) # -bindir=@SQL_BINDIR@ -db_name=@db_name@ +PATH="@SQL_BINDIR@:$PATH" +db_name=${db_name:-@db_name@} +# # use SQL_ASCII to be able to put any filename into # the database even those created with unusual character sets -ENCODING="ENCODING 'SQL_ASCII'" - -# use UTF8 if you are using standard Unix/Linux LANG specifications -# that use UTF8 -- this is normally the default and *should* be -# your standard. Bacula works correctly *only* with correct UTF8. + +PSQLVERSION=`psql -d template1 -c 'select version()' | awk '/PostgreSQL/ {print $2}' | cut -d '.' -f 1,2` + # -# Note, with this encoding, if you have any "weird" filenames on -# your system (names generated from Win32 or Mac OS), you may -# get Bacula batch insert failures. +# Note, LC_COLLATE and LC_TYPE are needed on 8.4 and beyond, but are +# not implemented in 8.3 or below. +# This must be updated for future versions of PostgreSQL # -#ENCODING="ENCODING 'UTF8'" - +case ${PSQLVERSION} in + 9.*) + ENCODING="ENCODING 'SQL_ASCII' LC_COLLATE 'C' LC_CTYPE 'C'" + ;; + 8.[456789]) + ENCODING="ENCODING 'SQL_ASCII' LC_COLLATE 'C' LC_CTYPE 'C'" + ;; + *) + ENCODING="ENCODING 'SQL_ASCII'" + ;; +esac + + + +# +# Please note: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +# We do not recommend that you use ENCODING 'SQL_UTF8' +# It can result in creating filenames in the database that +# cannot be seen or restored. +# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # -# KES: Note: the CREATE DATABASE, probably should be -# CREATE DATABASE ${db_name} $ENCODING TEMPLATE template0 # -if $bindir/psql -f - -d template1 $* </dev/null; then + echo "Database encoding OK" +else + echo " " + echo "Database encoding bad. Do not use this database" + echo " " fi -exit 0