111 lines
2.5 KiB
Go
111 lines
2.5 KiB
Go
package database
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
// Init initialize mysql config file
|
|
func Init() error {
|
|
var cover string
|
|
if IsExist() {
|
|
fmt.Println("Your database config is initialized , reinitialized database will cover your database config.")
|
|
fmt.Println("Did you want to do it ? [Y/N]")
|
|
fmt.Scanln(&cover)
|
|
switch strings.ToUpper(cover) {
|
|
case "Y":
|
|
case "N":
|
|
return nil
|
|
default:
|
|
}
|
|
}
|
|
err := Remove()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = initConfig()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
fmt.Println("mysql initialized finished!")
|
|
return nil
|
|
}
|
|
|
|
func initConfig() error {
|
|
var dbIp, dbPort, dbName, dbUsername, dbPwd, dbLogZap, dbLogMod string
|
|
var maxIdleConns, maxOpenConns int
|
|
fmt.Println("Please input your database Ip: ")
|
|
fmt.Printf("Database path default is '%s'\n", CONFIG.Ip)
|
|
fmt.Scanln(&dbIp)
|
|
if dbIp != "" {
|
|
CONFIG.Ip = dbIp
|
|
}
|
|
|
|
fmt.Println("Please input your database Port: ")
|
|
fmt.Printf("Database path default is '%s'\n", strconv.Itoa(CONFIG.Port))
|
|
fmt.Scanln(&dbPort)
|
|
if dbPort != "" {
|
|
CONFIG.Port, _ = strconv.Atoi(dbPort)
|
|
}
|
|
|
|
fmt.Println("Please input your database db-name: ")
|
|
fmt.Printf("Database db-name default is '%s'\n", CONFIG.DbName)
|
|
fmt.Scanln(&dbName)
|
|
if dbName != "" {
|
|
CONFIG.DbName = dbName
|
|
}
|
|
|
|
fmt.Println("Please input your database username: ")
|
|
fmt.Printf("Database username default is '%s'\n", CONFIG.Username)
|
|
fmt.Scanln(&dbUsername)
|
|
if dbUsername != "" {
|
|
CONFIG.Username = dbUsername
|
|
}
|
|
|
|
fmt.Println("Please input your database password: ")
|
|
fmt.Printf("Database password default is '%s'\n", CONFIG.Password)
|
|
fmt.Scanln(&dbPwd)
|
|
if dbPwd != "" {
|
|
CONFIG.Password = dbPwd
|
|
}
|
|
|
|
fmt.Println("Please input your database log zap: ")
|
|
fmt.Printf("Database log zap default is '%s'\n", CONFIG.LogZap)
|
|
fmt.Scanln(&dbLogZap)
|
|
if dbLogZap != "" {
|
|
CONFIG.LogZap = dbLogZap
|
|
}
|
|
|
|
fmt.Println("Please input your database log mode: [Y/N]")
|
|
fmt.Println("Database log mode default is N")
|
|
fmt.Scanln(&dbLogMod)
|
|
switch strings.ToUpper(dbLogMod) {
|
|
case "Y":
|
|
CONFIG.LogMode = true
|
|
case "N":
|
|
CONFIG.LogMode = false
|
|
default:
|
|
CONFIG.LogMode = false
|
|
}
|
|
|
|
fmt.Println("Please input your database max idle conns: ")
|
|
fmt.Scanln(&maxIdleConns)
|
|
if maxIdleConns > 0 {
|
|
CONFIG.MaxIdleConns = maxIdleConns
|
|
}
|
|
|
|
fmt.Println("Please input your database max open conns: ")
|
|
fmt.Scanln(&maxOpenConns)
|
|
if maxOpenConns > 0 {
|
|
CONFIG.MaxOpenConns = maxOpenConns
|
|
}
|
|
|
|
if Instance() == nil {
|
|
return ErrDatabaseInit
|
|
}
|
|
|
|
return nil
|
|
}
|