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과 동일한 작업을 수행한다고 가정하면 두 개의 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
command를 사용하십시오 .
man pg_wrapper
자세한 내용을 확인 하십시오.
답변
dpkg -L <packagename>
특정 패키지가 소유 한 파일을 확인하는 데 사용할 수 있습니다 . postgresql 9 패키지로 실행하고 해당 버전의 createdb 명령이 저장된 위치를 확인하십시오.
대부분의 postgresql 명령은 포트 또는 경로별로 데이터베이스를 적절히 선택하여 크로스 버전으로 작동하지만 스크립트 시작 및 생성 명령에는 적용되지 않습니다.