With all this talk of rebuilding indices, the following script does it
for me:

#!/bin/sh
pg_dump -s databasename > filename
perl -pi -e 'unless (/CREATE.*INDEX/) {s/.*//;chomp;}' filename
perl -pi.create -e 's/CREATE.*?INDEX(.*?\s)ON.*/DROP INDEX$1\;/i;'
filename
mv filename filename.drop
psql -d databasename -c '\i filename.drop'
psql -d databasename -c '\i filename.create'

Of course there are bound to be a million ways of scripting this
without perl, but using awk or similar.

You could cron this up - I don't know if regular rebuilding
of indices helps minimise corruption?

Yours,
Moray

----------------------------------------------------------------------
----------------
[EMAIL PROTECTED]

With all this talk of rebuilding indices, the following script does it
for me:

#!/bin/sh
pg_dump -s databasename > filename
perl -pi -e 'unless (/CREATE.*INDEX/) {s/.*//;chomp;};$old=$_;'
filename
perl -pi.create -e 's/CREATE.*?INDEX(.*?\s)ON.*/DROP INDEX$1\;/i;'
filename
mv filename filename.drop
psql -d databasename -c '\i filename.drop'
psql -d databasename -c '\i filename.create'

Of course there are bound to be a million ways of scripting this
without perl, but using awk or similar.
You could cron this up, of course - I don't know if regular rebuilding
of indices helps minimise corruption?
Yours,
Moray

----------------------------------------------------------------------
----------------
[EMAIL PROTECTED]

Reply via email to