mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
[优化] 初始化创建tdengine的数据库
This commit is contained in:
2
main.go
2
main.go
@@ -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 {
|
||||
|
||||
@@ -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;")
|
||||
|
||||
Reference in New Issue
Block a user