aboutsummaryrefslogtreecommitdiff
path: root/files/bin/fiken-dump-database
diff options
context:
space:
mode:
Diffstat (limited to 'files/bin/fiken-dump-database')
-rw-r--r--files/bin/fiken-dump-database40
1 files changed, 40 insertions, 0 deletions
diff --git a/files/bin/fiken-dump-database b/files/bin/fiken-dump-database
new file mode 100644
index 0000000..eb962d7
--- /dev/null
+++ b/files/bin/fiken-dump-database
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+export BUP_DIR=$HOME/bups/postgres-backup
+
+now=`date -u +%Y-%m-%dT%H:%M:%S.000Z`
+
+db="$1"
+
+if [[ -z $db ]]
+then
+ echo "usage: $0 <database>"
+ exit 1
+fi
+
+dir="$HOME/backups/${db}"
+name="pg_${db}_${now}.backup"
+path="$dir/$name"
+
+mkdir -p "$dir"
+
+echo "Dumping $db to $path"
+
+time pg_dump -h localhost -U fiken-prod -b -Fc $db > $path
+rm -rf "$dir/latest"
+ln -s "$name" "$dir/latest"
+
+echo "Updating backups"
+(
+cd "$dir"
+bup index -u .
+bup save -n postgres-backup .
+)
+
+echo "Dump complete"
+echo "File size:" `ls -sh $path|cut -f 1 -d " "`
+echo ""
+echo "To restore to a db:"
+echo "psql -1 -h localhost -U fiken-dev -d fiken-dev -c 'drop schema public CASCADE; create schema public'"
+echo "vacuumlo -U fiken-dev -h localhost -v -l 10000 fiken-dev"
+echo "pg_restore -O -U fiken-dev -h localhost -d fiken-dev" $name