21

根据文档

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

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

SELECT extversion
FROM pg_extension
where extname = 'timescaledb';

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

笔记:

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

1 回答 1

31

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

SELECT extversion
FROM pg_extension
where extname = 'timescaledb';

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

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

SELECT default_version, installed_version FROM pg_available_extensions
where name = 'timescaledb';
  • 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

现在更新扩展

  • 通过连接psql -X -U USER -W -D DBNAME
  • 执行ALTER EXTENSION timescaledb UPDATE;
  • 现在版本是一样的
于 2019-08-19T11:39:54.983 回答