[优化] 初始化创建tdengine的数据库

This commit is contained in:
PandaX
2023-11-03 10:06:06 +08:00
parent 31ffa8f4bb
commit d162dfab7c
2 changed files with 23 additions and 1 deletions

View File

@@ -46,7 +46,7 @@ var rootCmd = &cobra.Command{
global.Log.Info("Redis连接成功")
}
cache.RedisDb = client
tDengine, err := tdengine.NewTdengine(global.Conf.Taos.Username, global.Conf.Taos.Password, global.Conf.Taos.Host, global.Conf.Taos.Database)
tDengine, err := tdengine.InitTd(global.Conf.Taos.Username, global.Conf.Taos.Password, global.Conf.Taos.Host, global.Conf.Taos.Database)
if err != nil {
global.Log.Panic("Tdengine连接错误")
} else {

View File

@@ -2,7 +2,9 @@ package tdengine
import (
"database/sql"
"encoding/base64"
"fmt"
"github.com/PandaXGO/PandaKit/httpclient"
_ "github.com/taosdata/driver-go/v3/taosRestful"
"strings"
"time"
@@ -13,6 +15,14 @@ type TdEngine struct {
dbName string
}
func InitTd(username, password, host, db string) (*TdEngine, error) {
_, err := CreateDataBase(username, password, host, db)
if err != nil {
return nil, err
}
return NewTdengine(username, password, host, db)
}
func NewTdengine(username, password, host, db string) (*TdEngine, error) {
dsn := fmt.Sprintf("%s:%s@%s(%s)/%s",
username, password, "http", host, db)
@@ -24,6 +34,18 @@ func NewTdengine(username, password, host, db string) (*TdEngine, error) {
}
// 创建数据库
func CreateDataBase(username, password, host, dbname string) (float64, error) {
sql := "CREATE DATABASE if not exists " + dbname + " KEEP 365 VGROUPS 10"
url := fmt.Sprintf("http://%s/rest/sql", host)
token := base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf("%s:%s", username, password)))
data, err := httpclient.NewRequest(url).Header("Authorization", "Basic "+token).PostText(sql).BodyToMap()
if err != nil {
return 0, err
}
return data["rows"].(float64), nil
}
// GetTdEngineAllDb 获取所有数据库
func (s *TdEngine) GetTdEngineAllDb() (data []string, err error) {
rows, err := s.db.Query("show databases;")