]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/cats/create_postgresql_database.in
Revert to using LGPLv3 for simple scripts
[bacula/bacula] / bacula / src / cats / create_postgresql_database.in
1 #!/bin/sh
2 #
3 # shell script to create Bacula database(s)
4 #
5 #  Author:  Kern Sibbald
6 #  License: LGPLv3
7 #
8
9 PATH="@POSTGRESQL_BINDIR@:$PATH"
10 db_name=${db_name:-@db_name@}
11
12 #
13 # use SQL_ASCII to be able to put any filename into
14 #  the database even those created with unusual character sets
15
16 PSQLVERSION=`psql -d template1 -c 'select version()' $* | awk '/PostgreSQL/ {print $2}' | cut -d '.' -f 1,2`
17
18 #
19 # Note, LC_COLLATE and LC_TYPE are needed on 8.4 and beyond, but are
20 #   not implemented in 8.3 or below.
21 # This must be updated for future versions of PostgreSQL
22 #
23 case ${PSQLVERSION} in
24    9.*)
25         ENCODING="ENCODING 'SQL_ASCII' LC_COLLATE 'C' LC_CTYPE 'C'"
26    ;;
27    8.[456789])
28         ENCODING="ENCODING 'SQL_ASCII' LC_COLLATE 'C' LC_CTYPE 'C'"
29     ;;
30     *)
31         ENCODING="ENCODING 'SQL_ASCII'"
32     ;;
33 esac
34
35
36
37 #
38 # Please note: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
39 #  We do not recommend that you use ENCODING 'SQL_UTF8'
40 #  It can result in creating filenames in the database that
41 #  cannot be seen or restored.
42 # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
43 #
44 #
45 if psql -f - -d template1 $* <<END-OF-DATA
46 \set ON_ERROR_STOP on
47 CREATE DATABASE ${db_name} $ENCODING TEMPLATE template0;
48 ALTER DATABASE ${db_name} SET datestyle TO 'ISO, YMD';
49 END-OF-DATA
50 then
51    echo "Creation of ${db_name} database succeeded."
52 else
53    echo " "
54    echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
55    echo "!!!! Creation of ${db_name} database failed. !!!!"
56    echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
57 fi
58 if psql -l ${dbname} $* | grep " ${db_name}.*SQL_ASCII" >/dev/null; then 
59    echo "Database encoding OK"
60 else
61    echo " "
62    echo "Database encoding bad. Do not use this database"
63    echo " "
64 fi