如何制作在9.0和9.1中正确引入hstore的脚本?

时间:2012-12-11 11:04:04

标签: postgresql-9.1 ddl postgresql-9.0 hstore

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

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

  

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

问问Postgres:

psql -c 'select version()' postgres

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

psql --version