PostgreSQL - added equivalent of the MySQL-specific rebuilddb.sh script, for upgrading

This commit is contained in:
CiaranG 2009-03-08 11:58:27 +00:00
parent a5b9f59cb2
commit a89d7ceab0
2 changed files with 45 additions and 8 deletions

19
README
View File

@ -745,16 +745,19 @@ to the end first before trying them.
directory to your new directory.
9. Copy htaccess.sample to .htaccess in the new directory. Change the
RewriteBase to use the correct path.
10. Rebuild the database. Go to your Laconica directory and run the
rebuilddb.sh script like this:
10. Rebuild the database. For MySQL, go to your Laconica directory and
run the rebuilddb.sh script like this:
./scripts/rebuilddb.sh rootuser rootpassword database db/laconica.sql
./scripts/rebuilddb.sh rootuser rootpassword database db/laconica.sql
Here, rootuser and rootpassword are the username and password for a
user who can drop and create databases as well as tables; typically
that's _not_ the user Laconica runs as.
11. Use mysql client to log into your database and make sure that the
notice, user, profile, subscription etc. tables are non-empty.
Here, rootuser and rootpassword are the username and password for a
user who can drop and create databases as well as tables; typically
that's _not_ the user Laconica runs as.
For PostgreSQL databases there is an equivalent, rebuilddb_psql.sh,
which operates slightly differently. Read the documentation in that
script before running it.
11. Use mysql or psql client to log into your database and make sure that
the notice, user, profile, subscription etc. tables are non-empty.
12. Turn back on the Web server, and check that things still work.
13. Turn back on XMPP bots and email maildaemon. Note that the XMPP
bots have changed since version 0.5; see above for details.

34
scripts/rebuilddb_psql.sh Executable file
View File

@ -0,0 +1,34 @@
#!/bin/bash
#
# ******************************* WARNING *********************************
# Do not run this script until you have read and understood the information
# below, AND backed up your database. Failure to observe these instructions
# may result in losing all the data in your database.
#
# This script is used to upgrade Laconica's PostgreSQL database to the
# latest version. It does the following:
#
# 1. Dumps the existing data to /tmp/rebuilddb_psql.sql
# 2. Clears out the objects (tables, etc) in the database schema
# 3. Reconstructs the database schema using the latest script
# 4. Restores the data dumped in step 1
#
# You MUST run this script as the 'postgres' user.
# You MUST be able to write to /tmp/rebuilddb_psql.sql
# You MUST specify the laconica database user and database name on the
# command line, e.g. ./rebuilddb_psql.sh myuser mydbname
#
user=$1
DB=$2
cd `dirname $0`
pg_dump -a -D --disable-trigger $DB > /tmp/rebuilddb_psql.sql
psql -c "drop schema public cascade; create schema public;" $DB
psql -c "grant all privileges on schema public to $user;" $DB
psql $DB < ../db/laconica_pg.sql
psql $DB < /tmp/rebuilddb_psql.sql
for tab in `psql -c '\dts' $DB -tA | cut -d\| -f2`; do
psql -c "ALTER TABLE \"$tab\" OWNER TO $user;" $DB
done