Browse Source

Add socket support to mysql (#1911)

Laurence Jones 2 years ago
parent
commit
11965f08db
1 changed files with 7 additions and 1 deletions
  1. 7 1
      pkg/database/database.go

+ 7 - 1
pkg/database/database.go

@@ -89,7 +89,13 @@ func NewClient(config *csconfig.DatabaseCfg) (*Client, error) {
 		}
 		}
 		client = ent.NewClient(ent.Driver(drv), entOpt)
 		client = ent.NewClient(ent.Driver(drv), entOpt)
 	case "mysql":
 	case "mysql":
-		drv, err := getEntDriver("mysql", dialect.MySQL, fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?parseTime=True", config.User, config.Password, config.Host, config.Port, config.DbName), config)
+		connString := ""
+		if config.Host == "" && config.Port == 0 && config.DbPath != "" {
+			connString = fmt.Sprintf("%s:%s@unix(%s)/%s?parseTime=True", config.User, config.Password, config.DbPath, config.DbName)
+		} else {
+			connString = fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?parseTime=True", config.User, config.Password, config.Host, config.Port, config.DbName)
+		}
+		drv, err := getEntDriver("mysql", dialect.MySQL, connString, config)
 		if err != nil {
 		if err != nil {
 			return &Client{}, fmt.Errorf("failed opening connection to mysql: %v", err)
 			return &Client{}, fmt.Errorf("failed opening connection to mysql: %v", err)
 		}
 		}