如何获取数据库的timescaledb版本

TmT*_*ron 18 timescaledb

根据文档

TimescaleDB 支持在同一个 PostgreSQL 实例中的不同数据库上有不同的扩展版本。

我可以使用此 SQL 命令获取实例的已安装版本:

SELECT extversion
FROM pg_extension
where extname = 'timescaledb';
Run Code Online (Sandbox Code Playgroud)

但是如何获取特定数据库的版本?

笔记:

  • 我更喜欢通过 sql(而不是 psql)获取版本
  • 这样做的原因是我们想知道我们是否必须更新数据库(即执行ALTER EXTENSION timescaledb UPDATE;

TmT*_*ron 24

事实证明,我的假设是错误的:

SELECT extversion
FROM pg_extension
where extname = 'timescaledb';
Run Code Online (Sandbox Code Playgroud)

返回当前连接的数据库的版本。

以下是我们如何找出版本:

SELECT default_version, installed_version FROM pg_available_extensions
where name = 'timescaledb';
Run Code Online (Sandbox Code Playgroud)
  • default_version: 是安装在 PostgreSQL 服务器实例中的版本
  • installed_version: 是当前数据库使用的版本

示例

当数据库使用的扩展不是最新的时,版本不匹配:

SELECT default_version, installed_version FROM pg_available_extensions
where name = 'timescaledb';

 default_version | installed_version 
-----------------+-------------------
 1.4.1           | 1.4.0
Run Code Online (Sandbox Code Playgroud)

现在更新扩展

  • 通过连接 psql -X -U USER -W -D DBNAME
  • 执行 ALTER EXTENSION timescaledb UPDATE;
  • 现在版本是一样的

  • 在 psql 中运行 `\dx` 始终是获​​取 postgres 中安装的扩展版本的简单方法 (3认同)
  • 这正是我所建议的!当你回答自己的问题时总是很好:) (2认同)