一般的な取り決めで PostgreSQL のリリース間における内部データ保存形式は変更の対象となっています。パッチレベルの相違は対象外で、パッチレベル間では必ず互換性のとれる保存形式になっています。たとえばリリース 7.1.1 と 7.1.2 とでは互換正がありますが、7.0.1、7.1.2 と 7.2 には互換性がありません。互換性のあるバージョン間での更新を行う場合、ただ単にディスク上のデータ領域を新しい実行プログラムで使用するだけで問題ありません。互換性がない場合は pg_dump によりデータを「バックアップ」してから新しいサーバに「リストア」する必要があります。(間違ったことを行わないよう所どころで確認を求められますので互換性について勘違いをしていても大丈夫です。)正確なインストール手順はこの節の範疇ではありません。詳細は Chapter 1 にあります。
サーバ停止の時間を最短とするには、新しいサーバを違ったディレクトリにインストールし、古いサーバと新しいサーバを異なったポートで並行に稼働させる方法があります。そのためにつぎのようなコマンドでデータを転送するかお好みなら中間ファイルを使用してください。
その後古い方のサーバを停止し、新しいサーバを古いサーバが稼働していたポートで立ち上げます。このとき pg_dumpallを行った後にデータベースが更新されていないことを確認してください。さもないとそれらのデータは明らかに消えてしまいます。接続を拒否する方法は Chapter 4 を参照してください。実際にはサーバを交換する前に、クライアントアプリケーションのテストを行うことをお勧めします。2 つのサーバを並行に稼働できなかったり稼働させたくない場合は、新しいバージョンのインストールを行う前にまずバックアップを行い、サーバを停止してから古いバージョンをどこかに移動し、新しいバージョンをインストールしたのち、新しいサーバを立ち上げてデータをリストアしてください。たとえばつぎのような手順です。
pg_dumpall > backup pg_ctl stop mv /usr/local/pgsql /usr/local/pgsql.old cd /usr/src/postgresql-7.2.3 gmake install initdb -D /usr/local/pgsql/data postmaster -D /usr/local/pgsql/data psql < backup
Note: 「古いインストレーションをどこかに移動」した場合、もはや完全には使用できません。インストレーションのある部分には、その他の部分がどこにあるのかの情報を持っています。これは多くの場合たいした問題ではありませんが、2 つのインストレーションをしばらく並行して使用する場合ビルドの際に異なったインストレーションディレクトリを割り当てなければなりません。