-
Notifications
You must be signed in to change notification settings - Fork 1
/
config.go
154 lines (138 loc) · 3.2 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package easydb
type dbConfigParam func(*DBConfig)
// WithDataSourceName set data source name option
func WithDataSourceName(DataSource string) dbConfigParam {
return func(c *DBConfig) {
c.DataSource = DataSource
}
}
// WithUserName set username option
func WithUserName(UserName string) dbConfigParam {
return func(c *DBConfig) {
c.UserName = UserName
}
}
// WithPassword set password option
func WithPassword(Password string) dbConfigParam {
return func(c *DBConfig) {
c.Password = Password
}
}
// WithHost set host option
func WithHost(Host string) dbConfigParam {
return func(c *DBConfig) {
c.Host = Host
}
}
// WithPort set port option
func WithPort(Port string) dbConfigParam {
return func(c *DBConfig) {
c.Port = Port
}
}
// WithSchema set schema option
func WithSchema(Schema string) dbConfigParam {
return func(c *DBConfig) {
c.Schema = Schema
}
}
// WithMaxOpenConns set schema option
func WithMaxOpenConns(MaxOpenConns int) dbConfigParam {
return func(c *DBConfig) {
c.MaxOpenConns = MaxOpenConns
}
}
// WithMaxIdleConns set schema option
func WithMaxIdleConns(MaxIdleConns int) dbConfigParam {
return func(c *DBConfig) {
c.MaxIdleConns = MaxIdleConns
}
}
// WithConnMaxLifetime set schema option
func WithConnMaxLifetime(ConnMaxLifetime int) dbConfigParam {
return func(c *DBConfig) {
c.ConnMaxLifetime = ConnMaxLifetime
}
}
// WithConnParams set schema option
func WithConnParams(ConnParams string) dbConfigParam {
return func(c *DBConfig) {
c.ConnParams = ConnParams
}
}
// WithEnableMigrate set schema option
func WithEnableMigrate(EnableMigrate bool) dbConfigParam {
return func(c *DBConfig) {
c.EnableMigrate = EnableMigrate
}
}
// WithMigrateDir set schema option
func WithMigrateDir(MigrateDir string) dbConfigParam {
return func(c *DBConfig) {
c.MigrateDir = MigrateDir
}
}
// NewMysqlConfig create new mysql config
func NewMysqlConfig(params ...dbConfigParam) *DBConfig {
config := &DBConfig{}
for _, p := range params {
p(config)
}
if config.UserName == "" {
config.UserName = "root"
}
if config.Host == "" {
config.Host = "localhost"
}
if config.Port == "" {
config.Port = "3306"
}
if config.DataSource == "" {
config.DataSource = config.Host + config.Port + config.Schema
}
if config.MigrateDir == "" {
config.MigrateDir = "./migrations"
}
return config
}
// NewPgsqlConfig create pgsql config
func NewPgsqlConfig(params ...dbConfigParam) *DBConfig {
config := &DBConfig{}
for _, p := range params {
p(config)
}
if config.UserName == "" {
config.UserName = "postgres"
}
if config.Password == "" {
config.Password = "postgres"
}
if config.Host == "" {
config.Host = "localhost"
}
if config.Port == "" {
config.Port = "5432"
}
if config.DataSource == "" {
config.DataSource = config.Host + config.Port + config.Schema
}
if config.MigrateDir == "" {
config.MigrateDir = "./migrations"
}
return config
}
// DBConfig db config struct
type DBConfig struct {
DataSource string
UserName string
Password string
Host string
Port string
Schema string
ConnParams string
MaxOpenConns int
MaxIdleConns int
ConnMaxLifetime int
EnableMigrate bool
MigrateDir string
}