我正在尝试将hstore
类型引入我正在开发的项目的数据库中。但问题是我的开发机器上安装的 Postgres 服务器版本比生产机器上的版本稍新。虽然我可以简单地在CREATE EXTENSION
本地执行该命令,但该命令在生产机器上不可用。
有没有办法创建一个同时安装hstore
在 9.1 和 9.0 上的脚本?
我正在尝试将hstore
类型引入我正在开发的项目的数据库中。但问题是我的开发机器上安装的 Postgres 服务器版本比生产机器上的版本稍新。虽然我可以简单地在CREATE EXTENSION
本地执行该命令,但该命令在生产机器上不可用。
有没有办法创建一个同时安装hstore
在 9.1 和 9.0 上的脚本?
对于 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>
...如果有办法确定系统中当前安装了哪个 PG 版本。
询问 Postgres:
psql -c 'select version()' postgres
或者,如果您确信 psql 的版本是同步的:
psql --version