我在 Oracle VirtualBox 上运行 Ubuntu 12.04。几个月前,我在我的机器上安装了 PostgreSQL 服务器版本 9.1。就在最近,我了解到PostgreSQL server 9.3 支持JSON 数据类型,所以我决定升级。
我按照此处的说明升级到 9.3:
https://wiki.postgresql.org/wiki/Apt
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.3 pgadmin3
Run Code Online (Sandbox Code Playgroud)
这与版本 9.1 一起在我的机器上安装了服务器版本 9.3。全新启动后运行 pg_lsclusters 给出:
Ver Cluster Port Status Owner Data directory Log file
9.1 main 5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
Run Code Online (Sandbox Code Playgroud)
然后我做了以下升级后维护:我用 pg_dump 从我的 9.1 服务器导出了几个表,并将它们恢复到我的 9.3 服务器。然后我打开 9.1 和 9.3 的配置文件/etc/postgresql/$VERSION/main/postgresql.conf并交换它们的端口号,以便我的 psql …
我在同一台服务器(Ubuntu Lucid)上运行 PostgreSQL 8.4 和 9.0。
我通过 apt-get 安装了它们(使用默认包源的 8.4 和从https://launchpad.net/~pitti/+archive/postgresql添加 ppa 后的 9.0 )。
当我从命令行运行“createdb”之类的命令或启动“psql”shell 时,我的系统默认使用 PostgreSQL 8.4 版。
那么,如何强制这些命令使用 PostgreSQL 9.0 而不是 8.4?