databse.go 1012 字节
Newer Older
E
eoLinker API Management 已提交
1 2 3 4
package console

import (
	"fmt"
Y
Your Name 已提交
5

黄孟柱 已提交
6 7
	"github.com/eolinker/goku-api-gateway/common/database"
	"github.com/eolinker/goku-api-gateway/server/entity"
E
eoLinker API Management 已提交
8 9
)

Y
Your Name 已提交
10 11 12 13 14 15
const (
	mysqlDriver   = "mysql"
	sqlite3Driver = "sqlite3"
)

//ClusterDatabaseConfig 集群数据库配置
E
eoLinker API Management 已提交
16 17
type ClusterDatabaseConfig entity.ClusterDB

Y
Your Name 已提交
18
//GetDriver 获取驱动类型
E
eoLinker API Management 已提交
19 20 21 22
func (c *ClusterDatabaseConfig) GetDriver() string {
	return c.Driver
}

Y
Your Name 已提交
23
//GetSource 获取连接字符串
E
eoLinker API Management 已提交
24 25
func (c *ClusterDatabaseConfig) GetSource() string {

Y
Your Name 已提交
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
	switch c.Driver {
	case mysqlDriver:
		{
			return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8", c.UserName, c.Password, c.Host, c.Port, c.Database)
		}
	case sqlite3Driver:
		{
			return c.Path
		}
	default:
		{
			return ""
		}
	}

E
eoLinker API Management 已提交
41 42
}

Y
Your Name 已提交
43
//InitDatabase 初始化数据库
E
eoLinker API Management 已提交
44 45 46 47 48 49 50 51 52 53 54
func InitDatabase() {
	def, err := getDefaultDatabase()
	if err != nil {
		panic(err)
	}
	c := ClusterDatabaseConfig(*def)
	e := database.InitConnection(&c)
	if e != nil {
		panic(e)
	}
}
Y
Your Name 已提交
55 56 57 58

func InitTable() error {
	return database.InitTable()
}