db

package
v1.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 13, 2023 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const MSSQL = "MSSQL"

MSSQL ...

View Source
const MySQL = "MYSQL"

MySQL ...

View Source
const PostGres = "POSTGRES"

PostGres ...

Variables

This section is empty.

Functions

func CloseDBConn added in v1.1.0

func CloseDBConn(dbConn *gorm.DB)

CloseDBConn close database connection

func GetConn added in v1.1.0

func GetConn(DBName string, connType ConnType) *gorm.DB

GetConn get master or slave connection from DB i

func OpenDBConn added in v1.1.0

func OpenDBConn(conf []MultiDbConf) *gorm.DB

OpenDBConn connect to multiple DB sources (mysql only)

Types

type ConnStringBuilder

type ConnStringBuilder struct {
	Host     string
	Port     string
	Username string
	Password string
	Dbname   string
	Format   string
	Options  map[string]string
}

ConnStringBuilder ...

func (*ConnStringBuilder) Build

func (c *ConnStringBuilder) Build() string

Build ...

func (*ConnStringBuilder) SetDbname

func (c *ConnStringBuilder) SetDbname(Dbname string) *ConnStringBuilder

SetDbname ...

func (*ConnStringBuilder) SetFormat

func (c *ConnStringBuilder) SetFormat(Format string) *ConnStringBuilder

SetFormat ...

func (*ConnStringBuilder) SetHost

func (c *ConnStringBuilder) SetHost(Host string) *ConnStringBuilder

SetHost ...

func (*ConnStringBuilder) SetOptions

func (c *ConnStringBuilder) SetOptions(Options map[string]string) *ConnStringBuilder

SetOptions ...

func (*ConnStringBuilder) SetPassword

func (c *ConnStringBuilder) SetPassword(Password string) *ConnStringBuilder

SetPassword ...

func (*ConnStringBuilder) SetPort

func (c *ConnStringBuilder) SetPort(Port string) *ConnStringBuilder

SetPort ...

func (*ConnStringBuilder) SetUsername

func (c *ConnStringBuilder) SetUsername(Username string) *ConnStringBuilder

SetUsername ...

func (*ConnStringBuilder) SetWithConfig

func (c *ConnStringBuilder) SetWithConfig(cfg *viper.Viper) *ConnStringBuilder

SetWithConfig ...

type ConnType added in v1.1.0

type ConnType int64
const ConnTypeMaster ConnType = 1

ConnTypeMaster ...

const ConnTypeSlave ConnType = 0

ConnTypeSlave ...

type Manager

type Manager struct {
	Driver          string
	ConnMaxLifetime time.Duration
	MaxIdleConns    int
	MaxOpenConns    int
	Admin           *gorm.DB
	Master          *gorm.DB
	Slaves          []*gorm.DB
}

Manager ...

func New

func New() *Manager

New returns singleton instance of DB manager

func (*Manager) AddAdminConnString

func (m *Manager) AddAdminConnString(connString string)

AddAdminConnString can add admin connect string

func (*Manager) AddConnString

func (m *Manager) AddConnString(connString string)

AddConnString can add connect string. First string will be the master

func (*Manager) AddConnStrings

func (m *Manager) AddConnStrings(connString []string)

AddConnStrings can add mulitple connect strings. First string will be the master

func (*Manager) AdminConn

func (m *Manager) AdminConn() *gorm.DB

AdminConn will return admin connection

func (*Manager) Close

func (m *Manager) Close()

Close will release all DB instances

func (*Manager) CloseMaster

func (m *Manager) CloseMaster()

CloseMaster will release all master instance

func (*Manager) CloseSlaves

func (m *Manager) CloseSlaves()

CloseSlaves will release all slave instances

func (*Manager) MasterConn

func (m *Manager) MasterConn() *gorm.DB

MasterConn will return master connection

func (*Manager) Open

func (m *Manager) Open() *Manager

Open will create DB instances

func (*Manager) OpenAdmin

func (m *Manager) OpenAdmin() *Manager

OpenAdmin will create admin instance

func (*Manager) OpenMaster

func (m *Manager) OpenMaster() *Manager

OpenMaster will create master instance

func (*Manager) OpenSlaves

func (m *Manager) OpenSlaves() *Manager

OpenSlaves will create slave instances

func (*Manager) SetLogMode

func (m *Manager) SetLogMode(logMode bool)

SetLogMode will change SQL log mode (default: false)

func (*Manager) SlaveConn

func (m *Manager) SlaveConn() *gorm.DB

SlaveConn will return one of slave connection or master if all slave failed

type MultiDbConf added in v1.1.0

type MultiDbConf struct {
	Master string   // master db dsn
	Slaves []string // slave db dsn array
	DbName string   // db name
}

MultiDbConf represents for config for 1 master DB and several slave DB

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL