PostgreSQL 8.4と9.0を同じサーバー(Ubuntu Lucid)で実行しています。
両方をapt-getを使用してインストールしました(デフォルトのパッケージソースでは8.4、および https://launchpad.net/~pitti/+archive/postgresql からppaを追加した後は9.0)。
コマンドラインから「createdb」などのコマンドを実行するか、「psql」シェルを起動すると、システムでデフォルトでPostgreSQLバージョン8.4が使用されます。
では、これらのコマンドで8.4ではなくPostgreSQL 9.0を使用するように強制するにはどうすればよいですか?
UbuntuがDebianと同じことを行うと仮定すると、2つのPostGreSQLインスタンスは異なるポートで実行されます。
設定ファイルを簡単にチェックして、どのバージョンがどのポートにあるかを確認できます。
$ grep -H '^port' /etc/postgresql/*/main/postgresql.conf
/etc/postgresql/8.4/main/postgresql.conf:port = 5432
/etc/postgresql/8.3/main/postgresql.conf:port = 5433
ほとんどのPostGreSQLコマンドは「-p ####」または「--port = ####」オプションを使用するため、それを使用して必要なバージョンを選択できます。
--cluster
オプションを使用します。 (両方のクラスターがデフォルトのメインとして名前が付けられていると想定):
psql --cluster 8.4/main
psql --cluster 9.0/main
一般的なスキーマは次のとおりです。
--cluster version/name # for local connections
--cluster version/Host:port # for TCP/IP connections
インストールされているすべてのクラスター(名前、ポート、ステータス、データディレクトリなど)を一覧表示するには、pg_lsclusters
コマンドを使用します。
詳細については、man pg_wrapper
を確認してください。
dpkg -L <packagename>
を使用すると、特定のパッケージがどのファイルを所有しているかを確認できます。 postgresql 9パッケージで実行し、そのバージョンのcreatedbコマンドが格納されている場所を確認します。
ほとんどのpostgresqlコマンドは、ポートまたはパスによってデータベースを適切に選択してクロスバージョンで機能しますが、これはもちろん、開始スクリプトと作成コマンドには適用されません。