You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取PostgreSQL实例中特定数据库的TimescaleDB版本?

查询特定数据库的TimescaleDB版本(SQL方式)

好问题!因为TimescaleDB允许PostgreSQL实例内的不同数据库使用不同扩展版本,所以要获取特定数据库的版本,得针对目标库来查询,以下是两种可行的SQL方案:

1. 直接连接目标数据库查询

pg_extension是数据库级别的系统表,只要你连接到目标数据库,执行你已经熟悉的语句就能拿到该库的TimescaleDB版本:

SELECT extversion FROM pg_extension WHERE extname = 'timescaledb';

这个结果就是当前连接的数据库正在使用的TimescaleDB版本。

2. 跨数据库查询(无需切换连接)

如果不想切换数据库连接,你可以用PostgreSQL的dblink扩展来远程访问目标数据库的系统表:
首先确保dblink已安装(如果没装的话执行这条):

CREATE EXTENSION IF NOT EXISTS dblink;

然后执行以下语句查询指定数据库(比如你的目标库叫my_target_db)的版本:

SELECT extversion
FROM dblink('dbname=my_target_db', 'SELECT extversion FROM pg_extension WHERE extname = ''timescaledb''')
AS query_result(extversion text);

注意:要确保当前执行查询的用户有访问目标数据库的权限。

如何判断是否需要更新数据库的TimescaleDB版本

要确定是否需要执行ALTER EXTENSION timescaledb UPDATE;,你需要对比两个版本:

  1. 实例的最新可用版本:执行这条语句获取PostgreSQL实例上已安装的TimescaleDB共享库版本:
SELECT version FROM timescaledb_information.version;
  1. 目标数据库当前使用的版本:用上面两种方法之一获取。

如果目标数据库的extversion低于实例的version,就需要切换到该数据库执行更新命令:

ALTER EXTENSION timescaledb UPDATE;

提示:如果要更新到指定版本,可以用ALTER EXTENSION timescaledb UPDATE TO 'x.y.z';

内容的提问来源于stack exchange,提问作者TmTron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:56:27