Tue, 28 Aug 2012 18:29:00 +0200
Massively update modules from Drupal 6.x to 7.x, and add diverse OpenID modules.
Unfortunately many modules available to Drupal 6.x installations have not been
since maintained or ported to 7.x causing this package to diminish in both size
and utility.
1 #!/bin/sh
2 ##
3 ## pg_migrate -- PostgreSQL Database Migration Utility
4 ## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/>
5 ## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/>
6 ##
7 ## Permission to use, copy, modify, and distribute this software for
8 ## any purpose with or without fee is hereby granted, provided that
9 ## the above copyright notice and this permission notice appear in all
10 ## copies.
11 ##
12 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
13 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
14 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
15 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
16 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
18 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
20 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
21 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
22 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 ## SUCH DAMAGE.
24 ##
26 # configuration
27 l_prefix="@l_prefix@"
28 l_rusr="@l_rusr@"
29 l_rgrp="@l_rgrp@"
31 # load superuser information
32 l_pgdata=""
33 l_pguser=""
34 l_pgpass=""
35 if [ ! -r $l_prefix/var/postgresql/db/pg_superuser.conf ]; then
36 echo "$0:ERROR: unable to read file \"$l_prefix/var/postgresql/db/pg_superuser.conf\" (use pg_passwd(1) to create)" 1>&2
37 exit 1
38 fi
39 eval `. $l_prefix/var/postgresql/db/pg_superuser.conf; \
40 echo l_pgdata=\"$superuser_database\"; \
41 echo l_pguser=\"$superuser_username\"; \
42 echo l_pgpass=\"$superuser_password\"`
44 # establish sane environment
45 LC_CTYPE=C
46 export LC_CTYPE
47 umask 022
49 # check command line
50 if [ $# -ne 1 -a $# -ne 2 ]; then
51 echo "$0:ERROR: invalid command line" 1>&2
52 echo "$0:USAGE: $0 dump|restore [<password>]" 1>&2
53 exit 1
54 fi
55 cmd="$1"; shift
56 if [ $# -eq 1 ]; then
57 l_pgpass="$1"; shift
58 fi
60 # dispatch into commands
61 case $cmd in
62 dump )
63 echo "++ enforcing full-superuser access policy"
64 cp -p $l_prefix/var/postgresql/db/pg_hba.conf \
65 $l_prefix/var/postgresql/db/pg_hba.conf.orig
66 ( echo "local all all trust"
67 echo "host all all 127.0.0.1/32 trust"
68 ) >$l_prefix/var/postgresql/db/pg_hba.conf
70 ( eval `${l_prefix}/bin/openpkg rc postgresql status 2>/dev/null`
71 echo "postgresql_active=\"$postgresql_active\""
72 ) 2>/dev/null
73 if [ ".$postgresql_active" = .yes ]; then
74 echo "++ reloading already running database engine"
75 $l_prefix/bin/openpkg rc postgresql reload
76 sleep 2
77 epilog=reload
78 else
79 echo "++ temporarily starting database engine"
80 $l_prefix/bin/openpkg rc postgresql start
81 sleep 4
82 epilog=stop
83 fi
85 echo "++ rotating dump files $l_prefix/var/postgresql/db.dump*.sql.bz2"
86 i=9
87 rm -f $l_prefix/var/postgresql/db.dump.$i.sql.bz2 >/dev/null 2>&1 || true
88 while [ $i -gt 0 ]; do
89 j=$i
90 i=`expr $i - 1`
91 if [ $i -eq 0 ]; then
92 prev="$l_prefix/var/postgresql/db.dump.sql.bz2"
93 next="$l_prefix/var/postgresql/db.dump.$j.sql.bz2"
94 else
95 prev="$l_prefix/var/postgresql/db.dump.$i.sql.bz2"
96 next="$l_prefix/var/postgresql/db.dump.$j.sql.bz2"
97 fi
98 if [ -f $prev ]; then
99 mv $prev $next
100 fi
101 done
103 echo "++ dumping all databases into $l_prefix/var/postgresql/db.dump.sql.bz2"
104 PGPASSWORD="$l_pgpass" \
105 $l_prefix/bin/pg_dumpall \
106 -U "$l_pguser" -o |\
107 $l_prefix/lib/openpkg/bzip2 -9 \
108 >$l_prefix/var/postgresql/db.dump.sql.bz2
109 chown ${l_rusr}:${l_rgrp} $l_prefix/var/postgresql/db.dump.sql.bz2
110 chmod 700 $l_prefix/var/postgresql/db.dump.sql.bz2
112 echo "++ restoring original access policy"
113 cp -p $l_prefix/var/postgresql/db/pg_hba.conf.orig \
114 $l_prefix/var/postgresql/db/pg_hba.conf
115 rm -f $l_prefix/var/postgresql/db/pg_hba.conf.orig
117 if [ ".$epilog" = .reload ]; then
118 echo "++ reloading already running database engine (again)"
119 $l_prefix/bin/openpkg rc postgresql reload
120 sleep 2
121 else
122 echo "++ stopping temporarily started database engine"
123 $l_prefix/bin/openpkg rc postgresql stop
124 sleep 4
125 fi
126 ;;
128 restore )
129 if [ ".`$l_prefix/bin/openpkg rc postgresql status 2>&1 | grep 'is running'`" != . ]; then
130 echo "++ stopping already running database engine"
131 $l_prefix/bin/openpkg rc postgresql stop
132 sleep 2
133 epilog=start
134 else
135 epilog=none
136 fi
138 echo "++ rotating database directories $l_prefix/var/postgresql/db.old*/"
139 i=9
140 rm -rf $l_prefix/var/postgresql/db.old.$i >/dev/null 2>&1 || true
141 while [ $i -gt 0 ]; do
142 j=$i
143 i=`expr $i - 1`
144 if [ $i -eq 0 ]; then
145 prev="$l_prefix/var/postgresql/db"
146 next="$l_prefix/var/postgresql/db.old.$j"
147 else
148 prev="$l_prefix/var/postgresql/db.old.$i"
149 next="$l_prefix/var/postgresql/db.old.$j"
150 fi
151 if [ -d $prev ]; then
152 mv $prev $next
153 fi
154 done
156 echo "++ creating new database directory $l_prefix/var/postgresql/db/"
157 mkdir $l_prefix/var/postgresql/db
158 chown ${l_rusr}:${l_rgrp} $l_prefix/var/postgresql/db
159 chmod 700 $l_prefix/var/postgresql/db
161 su - ${l_rusr} -c \
162 "LC_CTYPE=C; export LC_CTYPE; umask 022; \
163 echo $l_pgpass >$l_prefix/var/postgresql/run/pw; \
164 $l_prefix/bin/pg_initdb \
165 -U $l_pguser --pwfile=$l_prefix/var/postgresql/run/pw \
166 -D $l_prefix/var/postgresql/db; \
167 rm -f $l_prefix/var/postgresql/run/pw" 2>&1 |\
168 $l_prefix/lib/openpkg/shtool prop \
169 -p "++ creating new database data"
171 echo "++ restoring database configurations"
172 for conf in pg_hba.conf pg_ident.conf postgresql.conf; do
173 cp -p $l_prefix/var/postgresql/db.old.1/$conf \
174 $l_prefix/var/postgresql/db/
175 done
177 echo "++ enforcing full-superuser access policy"
178 cp -p $l_prefix/var/postgresql/db/pg_hba.conf \
179 $l_prefix/var/postgresql/db/pg_hba.conf.orig
180 ( echo "local all all trust"
181 echo "host all all 127.0.0.1/32 trust"
182 ) >$l_prefix/var/postgresql/db/pg_hba.conf
184 if [ ".$epilog" = .start ]; then
185 echo "++ starting database engine"
186 else
187 echo "++ temporarily starting database engine"
188 fi
189 $l_prefix/bin/openpkg rc postgresql start
190 sleep 4
192 echo "++ restoring all databases from $l_prefix/var/postgresql/db.dump.sql.bz2"
193 $l_prefix/lib/openpkg/bzip2 -c -d \
194 $l_prefix/var/postgresql/db.dump.sql.bz2 |\
195 $l_prefix/bin/psql -U "$l_pguser" -d "$l_pgdata" 2>&1 |\
196 tee $l_prefix/var/postgresql/db.log |\
197 $l_prefix/lib/openpkg/shtool prop \
198 -p "++ restoring data (see $l_prefix/var/postgresql/db.log)"
200 echo "++ restoring original access policy"
201 cp -p $l_prefix/var/postgresql/db/pg_hba.conf.orig \
202 $l_prefix/var/postgresql/db/pg_hba.conf
203 rm -f $l_prefix/var/postgresql/db/pg_hba.conf.orig
205 if [ ".$epilog" = .start ]; then
206 echo "++ reloading already running database engine"
207 $l_prefix/bin/openpkg rc postgresql reload
208 sleep 2
209 else
210 echo "++ stopping temporarily started database engine"
211 $l_prefix/bin/openpkg rc postgresql stop
212 sleep 4
213 fi
214 ;;
215 * )
216 echo "$0:ERROR: unknown command \"$cmd\"" 1>&2
217 exit 1
218 ;;
219 esac