Mam PostgreSQL 8.4 i 9.0 działające na tym samym serwerze (Ubuntu Lucid).
Zainstalowałem je oba poprzez apt-get (8.4 z domyślnymi źródłami pakietów i 9.0 po dodaniu ppa z https://launchpad.net/~pitti/+archive/postgresql ).
Kiedy uruchamiam polecenie takie jak „Createdb” z wiersza poleceń lub uruchamiam powłokę „psql”, w moim systemie domyślnie używana jest PostgreSQL wersja 8.4.
Jak więc zmusić te polecenia do używania PostgreSQL 9.0 zamiast 8.4?
ubuntu
postgresql
młynek do kawy
źródło
źródło
Odpowiedzi:
Zakładając, że Ubuntu robi to samo co Debian, wówczas twoje dwie instancje PostGreSQL będą działały na różnych portach.
Możesz łatwo sprawdzić pliki konfiguracyjne, aby zobaczyć, która wersja jest na którym porcie:
Większość poleceń PostGreSQL ma opcję „-p ####” lub „--port = ####”, więc możesz użyć tej opcji, aby wybrać żądaną wersję.
źródło
Użyj
--cluster
opcji np. (Zakładając, że oba klastry mają domyślną nazwę main):Ogólne schematy to:
Aby wyświetlić listę wszystkich zainstalowanych klastrów (nazwa, port, status, katalog danych itp.) Użyj
pg_lsclusters
polecenia.Sprawdź
man pg_wrapper
więcej informacji.źródło
pg_wrapper
rozszerzenie Debiana. Zasadniczo zawijapsql
(tj. Jestpsql
symbolicznym linkiem dopg_wrapper
skryptu) polecenie z kilkoma nowymi opcjami ułatwiającymi obsługę wielu klastrów.Możesz użyć,
dpkg -L <packagename>
aby zobaczyć, jakie pliki posiada dany pakiet. Uruchom go z pakietem postgresql 9 i sprawdź, gdzie przechowywana jest komenda utworzona dla tej wersji.Większość poleceń postgresql działałaby w różnych wersjach z odpowiednim wyborem bazy danych według portu lub ścieżki, ale oczywiście nie dotyczy to uruchamiania skryptów i poleceń tworzenia.
źródło