From 7b91c886d9db1f81818e3b73b37fcb5d85734f59 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 12 Oct 2012 11:47:03 +0200 Subject: o Initial import of postgresql setup for app.sh. --- .gitignore | 2 ++ postgresql/Makefile | 14 ++++++++++ postgresql/bin/archive-command | 6 ++++ postgresql/bin/postgres-wrapper | 62 +++++++++++++++++++++++++++++++++++++++++ postgresql/etc/app.conf | 1 + postgresql/etc/postgresql.conf | 24 ++++++++++++++++ 6 files changed, 109 insertions(+) create mode 100644 .gitignore create mode 100644 postgresql/Makefile create mode 100644 postgresql/bin/archive-command create mode 100644 postgresql/bin/postgres-wrapper create mode 100644 postgresql/etc/app.conf create mode 100644 postgresql/etc/postgresql.conf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c1d64ce --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +zip +*.zip diff --git a/postgresql/Makefile b/postgresql/Makefile new file mode 100644 index 0000000..7279f36 --- /dev/null +++ b/postgresql/Makefile @@ -0,0 +1,14 @@ +VERSION=1.0-SNAPSHOT +ZIP_FILE=postgresql-$(VERSION).zip + +all: $(ZIP_FILE) + +clean: + rm -f $(ZIP_FILE) + +postgresql-$(VERSION).zip: + rm -rf zip + mkdir -p zip/root + cp -r etc zip/root/etc/ + cp -r bin zip/root/bin/ + (cd zip; zip -r ../$@ *) diff --git a/postgresql/bin/archive-command b/postgresql/bin/archive-command new file mode 100644 index 0000000..fa5f2c0 --- /dev/null +++ b/postgresql/bin/archive-command @@ -0,0 +1,6 @@ +#!/bin/bash + +set -e +echo `date` "Copying $1 to ../wal/$2" >> /tmp/archive-command.txt +mkdir -p ../wal +exec cp "$1" "../wal/$2" diff --git a/postgresql/bin/postgres-wrapper b/postgresql/bin/postgres-wrapper new file mode 100644 index 0000000..26b69c3 --- /dev/null +++ b/postgresql/bin/postgres-wrapper @@ -0,0 +1,62 @@ +#!/bin/bash -e + +PATH=$PATH:/opt/local/bin +CONF=etc/postgresql.conf + +if [ -z "$DATA" ] +then + DATA=../../../data +fi + +if [ ! -d $DATA ] +then + echo "Missing data dir: $DATA" + exit 1 +fi + +if [ -z "$LOG" ] +then + LOG=../../../log +fi + +if [ ! -d $LOG ] +then + echo "Missing log dir: $LOG, creating" + mkdir -p $LOG +fi + +LOG=$LOG/postgresql.log + +if [ ! -r $CONF ] +then + echo "Missing config file: $CONF" + exit 1 +fi + +# TODO: figure out how if pg_ctl exits with sane exit codes. + +x=`dirname $CONF` +CONF=`cd $x; pwd`/`basename $CONF` +DATA=`cd $DATA; pwd` +x=`dirname $LOG` +LOG=`cd $x; pwd`/`basename $LOG` + +case "$APPSH_METHOD" in + start) + echo "Starting postgresql" + exec pg_ctl start \ + -D "$DATA" \ + -o "-c config_file=$CONF" \ + -l $LOG & + ;; + stop) + echo "Stopping postgresql" + exec pg_ctl stop \ + -D "$DATA" \ + -o "-c config_file=$CONF" + ;; + *) + echo "Unknown method: $APPSH_METHOD" + exit 0 + ;; +esac diff --git a/postgresql/etc/app.conf b/postgresql/etc/app.conf new file mode 100644 index 0000000..b66592b --- /dev/null +++ b/postgresql/etc/app.conf @@ -0,0 +1 @@ +app.method=bin/postgres-wrapper diff --git a/postgresql/etc/postgresql.conf b/postgresql/etc/postgresql.conf new file mode 100644 index 0000000..fcde2ed --- /dev/null +++ b/postgresql/etc/postgresql.conf @@ -0,0 +1,24 @@ +max_connections = 20 +shared_buffers = 1600kB +datestyle = 'iso, mdy' +lc_messages = 'en_US.UTF-8' +lc_monetary = 'en_US.UTF-8' +lc_numeric = 'en_US.UTF-8' +lc_time = 'en_US.UTF-8' +default_text_search_config = 'pg_catalog.english' + +# Logging +log_destination='csvlog,stderr' +logging_collector=true +log_directory='../log' +log_filename='postmaster-%Y-%m-%d.log' +log_min_messages=INFO +log_min_error_statement=INFO +log_min_duration_statement=10 +log_connections=true + +# WAL +wal_level=archive + +archive_mode=true +archive_command='../current/bin/archive-command "%p" "%f"' -- cgit v1.2.3