在迁移脚本中,我有以下内容:
CREATE EXTENSION json;
问题是,在某些版本的 PostgreSQL 中,似乎内置了 JSON,而在其他版本中,它可以作为扩展使用。
CREATE EXTENSION ...
如果我尝试创建的扩展程序不可用,我怎样才能不失败?
在迁移脚本中,我有以下内容:
CREATE EXTENSION json;
问题是,在某些版本的 PostgreSQL 中,似乎内置了 JSON,而在其他版本中,它可以作为扩展使用。
CREATE EXTENSION ...
如果我尝试创建的扩展程序不可用,我怎样才能不失败?
一些可能很方便的功能:
http://www.postgresql.org/docs/current/static/view-pg-available-extensions.html
除了在发出语句之前检查之外,您还可以将代码包装在do
语句中并捕获错误:
do $$
begin
; -- do something
exception
when ...
; -- do something different
end;
$$ language plpgsql;
http://www.postgresql.org/docs/current/static/sql-do.html
http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html
http://www.postgresql.org/docs/current/static/errcodes-appendix.html