数据源

This commit is contained in:
XM-GO
2023-04-25 17:20:27 +08:00
parent 5dfa341083
commit 3da0dc3936
20 changed files with 1244 additions and 47 deletions

View File

@@ -1,35 +1,49 @@
package entity
import "github.com/XM-GO/PandaKit/model"
import (
"database/sql/driver"
"encoding/json"
"errors"
"github.com/XM-GO/PandaKit/model"
)
const (
DbTypeMysql = "MySQL"
DbTypePostgres = "PostgreSQL"
)
type VisualDataSource struct {
model.BaseModel
SourceId string `gorm:"primary_key;source_id;comment:数据源Id" json:"sourceId"` // 数据源Id
SourceType string `gorm:"source_type;type:varchar(50);comment:数据源类型" json:"sourceType"` // 数据源类型
SourceName string `gorm:"source_name;type:varchar(50);comment:数据源名称" json:"sourceName"` // 原名称
SourceComment string `gorm:"source_comment;type:varchar(50);comment:数据源描述" json:"source_comment"` // 描述
Status string `gorm:"status;type:varchar(1);comment:数据源状态" json:"status"`
Configuration string `gorm:"configuration;type:text;comment:详细信息" json:"configuration"`
CreateBy int64 `gorm:"api" json:"createBy"` //创建人ID
SourceId string `gorm:"primary_key;source_id;comment:数据源Id" json:"sourceId"` // 数据源Id
SourceType string `gorm:"source_type;type:varchar(50);comment:数据源类型" json:"sourceType"` // 数据源类型
SourceName string `gorm:"source_name;type:varchar(50);comment:数据源名称" json:"sourceName"` // 原名称
SourceComment string `gorm:"source_comment;type:varchar(50);comment:数据源描述" json:"sourceComment"` // 描述
Status string `gorm:"status;type:varchar(1);comment:数据源状态" json:"status"`
Db VisualDb `gorm:"db;type:text;comment:详细信息" json:"db"`
CreateBy int64 `gorm:"api" json:"createBy"` //创建人ID
}
type VisualDb struct {
DbIp string `gorm:"db_ip" json:"dbIp"`
DbPort string `gorm:"db_port" json:"dbPort"`
DbName string `gorm:"db_name" json:"dbName"`
DbUsername string `gorm:"db_username" json:"dbUsername"`
DbPassword string `gorm:"db_password" json:"dbPassword"`
DbJointParam string `gorm:"db_joint_param" json:"dbJointParam"` //额外的链接参数
}
type VisualApi struct {
Method string `gorm:"method" json:"method"`
Url string `gorm:"url" json:"url"`
Headers map[string]interface{} `gorm:"headers" json:"headers"`
RequestBody string `gorm:"db_username" json:"dbUsername"`
Auth string `gorm:"db_password" json:"dbPassword"`
Host string `gorm:"host" json:"host"`
Port int64 `gorm:"port" json:"port"`
Dbname string `gorm:"dbname" json:"dbname"`
Username string `gorm:"username" json:"username"`
Password string `gorm:"password" json:"password"`
Config string `gorm:"config" json:"config"` //额外的链接参数
Schema string `gorm:"schema" json:"schema"`
}
func (VisualDataSource) TableName() string {
return "visual_data_source"
}
func (a VisualDb) Value() (driver.Value, error) {
return json.Marshal(a)
}
func (a *VisualDb) Scan(value interface{}) error {
b, ok := value.([]byte)
if !ok {
return errors.New("type assertion to []byte failed")
}
return json.Unmarshal(b, &a)
}