Saya memiliki PostgreSQL 8.4 dan 9.0 yang berjalan di server yang sama (Ubuntu Lucid).
Saya menginstal keduanya melalui apt-get (8.4 dengan sumber paket default, dan 9.0 setelah menambahkan ppa dari https://launchpad.net/~pitti/+archive/postgresql ).
Ketika saya menjalankan perintah seperti "Createdb" dari baris perintah atau memulai shell "psql", PostgreSQL versi 8.4 digunakan secara default pada sistem saya.
Jadi, bagaimana saya memaksakan perintah ini untuk menggunakan PostgreSQL 9.0 dan bukan 8.4?
ubuntu
postgresql
penggiling kopi
sumber
sumber
Jawaban:
Dengan asumsi Ubuntu melakukan hal yang sama dengan Debian, maka dua instance PostGreSQL Anda akan berjalan pada port yang berbeda.
Anda dapat dengan mudah memeriksa file konfigurasi untuk melihat versi mana di port mana:
Sebagian besar perintah PostGreSQL mengambil opsi "-p ####" atau "--port = ####", sehingga Anda dapat menggunakannya untuk memilih versi yang Anda inginkan.
sumber
Gunakan
--cluster
opsi misalnya (dengan asumsi bahwa kedua cluster dinamai sebagai default utama):Skema umum adalah:
Untuk membuat daftar semua cluster yang diinstal (nama, port, status, direktori data dll) gunakan
pg_lsclusters
perintah.Periksa
man pg_wrapper
informasi lebih lanjut.sumber
pg_wrapper
adalah ekstensi Debian. Pada dasarnya, ia membungkuspsql
(yaitu,psql
tautan simbolis kepg_wrapper
skrip) perintah dengan beberapa opsi baru untuk memfasilitasi penanganan beberapa kluster.Anda dapat menggunakan
dpkg -L <packagename>
untuk melihat file apa yang dimiliki paket tertentu. Jalankan dengan paket postgresql 9 dan lihat di mana perintah createb untuk versi itu disimpan.Sebagian besar perintah postgresql akan bekerja lintas versi dengan pemilihan database yang sesuai berdasarkan port atau path, tetapi ini tentu saja tidak berlaku untuk memulai skrip dan perintah kreasi.
sumber