PostgreSQL を 8.4.5 から 8.4.16 にアップグレードしたときのメモ
単純に、PostgreSQL 8.4.16 のソースファイルがあるディレクトリで
$ ./configure
$ make
$ sudo make install
としたら、Rails アプリケーションからのデータベース接続ができなくなりました。
PGError: ERROR: unrecognized time zone name: "UTC"
: SET time zone 'UTC'
原因はよくわかりませんが、データベースを作り直したら接続できるようになりました。
そのときの手順をまとめておきます。
すべて PostgreSQL 用のユーザーアカウント postgres での操作です。
手順
データベース全体のバックアップ
$ pg_dumpall > /path/to/backupfile
データベース・サーバを停止する
$ pg_ctl stop
データファイルのためのディレクトリを(念のため)リネームし、新しく作る
$ mv $PGDATA{,_old}
$ mkdir $PGDATA
コンパイルとインストール (デフォルトで /usr/local/pgsql にインストールされる)
$ cd /path/to/src
$ ./configure
$ make
$ sudo make install
データベースの初期化
$ initdb --no-locale --encoding=UTF8 -D $PGDATA
データベース・サーバの開始
$ pg_ctl -D $PGDATA -l /path/to/logfile start
$ pg_ctl status
データのリストア
$ psql -d postgres -f /path/to/backupfile