0

我正在关注 timescaleDB 的教程。https://docs.timescale.com/timescaledb/latest/how-to-guides/hypertables/create/#create-a-hypertable

但我无法创建超表。我已经成功安装了 postgres 和 timescale。为什么我不能制作超表?

package main

import (
    "context"
    "encoding/json"
    "fmt"
    "log"
    "os"
    "runtime"
    "strconv"
    "sync"

    "github.com/jackc/pgx/v4/pgxpool"
)




    func main(){
    timeScaleDB()
    }
      

      
    func timeScaleDB(){
    
        psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
        "password=%s dbname=%s sslmode=disable",
        host, port, user, password, dbname)
    
        ctx := context.Background()
        dbpool, err := pgxpool.Connect(ctx, psqlInfo)
        if err != nil {
            fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err)
            os.Exit(1)
        }
        defer dbpool.Close()

       
       queryCreatetable := `CREATE TABLE sample_table (
        time TIMESTAMPTZ NOT NULL,
        id INTEGER PRIMARY KEY,
        name VARCHAR NOT NULL
        );
        SELECT create_hypertable('sample_table', 'time');`
        
    //execute statement
    _, err = dbpool.Exec(ctx, queryCreatetable)
    if err != nil {
    fmt.Fprintf(os.Stderr, "Unable to create sample_table hypertable: %v\n", err)
    os.Exit(1)
    }
    
    fmt.Println("Successfully created hypertable sample_table")
    }

错误:无法创建 sample_table 超表:错误:函数 create_hypertable(unknown, unknown) 不存在 (SQLSTATE 42883)

4

1 回答 1

3

您能否确认您是否启用了扩展程序?\dx只需在 psql 会话中加入服务器并使用命令列出扩展名:

tsdb=> \dx
                                          List of installed extensions
        Name         | Version |   Schema   |                            Description
---------------------+---------+------------+-------------------------------------------------------------------
 plpgsql             | 1.0     | pg_catalog | PL/pgSQL procedural language
 timescale_analytics | 0.2     | public     | timescale_analytics
 timescaledb         | 2.2.0   | public     | Enables scalable inserts and complex queries for time-series data
...

或者干脆尝试提前启用扩展:

CREATE EXTENSION IF NOT EXISTS timescaledb;
于 2021-05-10T12:59:16.470 回答