1

我正在尝试将hstore类型引入我正在开发的项目的数据库中。但问题是我的开发机器上安装的 Postgres 服务器版本比生产机器上的版本稍新。虽然我可以简单地在CREATE EXTENSION本地执行该命令,但该命令在生产机器上不可用。

有没有办法创建一个同时安装hstore在 9.1 和 9.0 上的脚本?

4

2 回答 2

1

对于 9.0,您可以使用这样的脚本(例如:create_hstore.sh):

#!/bin/bash

DB=$1
ARGS="-U postgres -h localhost"
CONTRIB=/usr/pgsql-9.0/share/contrib

[ $# -lt 1 ] && exit 1

# Uncomment following lines if necessary
#createdb $ARGS $DB
#createlang $ARGS plpgsql $DB
psql $ARGS -f $CONTRIB/hstore.sql $DB

然后调用它:

./create_hstore.sh <db_name>
于 2012-12-14T11:02:16.257 回答
1

...如果有办法确定系统中当前安装了哪个 PG 版本。

询问 Postgres:

psql -c 'select version()' postgres

或者,如果您确信 psql 的版本是同步的:

psql --version
于 2013-02-10T11:37:18.767 回答