diff --git a/backend/app/service/database_mysql.go b/backend/app/service/database_mysql.go index b8408ce64..768c75732 100644 --- a/backend/app/service/database_mysql.go +++ b/backend/app/service/database_mysql.go @@ -135,15 +135,6 @@ func (u *MysqlService) LoadFromRemote(req dto.MysqlLodaDB) error { return err } - mysqlName := req.From - if req.From == "local" { - app, err := appInstallRepo.LoadBaseInfo(req.Type, req.Database) - if err != nil { - return err - } - mysqlName = app.Name - } - databases, err := mysqlRepo.List(databaseRepo.WithByFrom(req.From)) if err != nil { return err @@ -165,7 +156,6 @@ func (u *MysqlService) LoadFromRemote(req dto.MysqlLodaDB) error { if err := copier.Copy(&createItem, &data); err != nil { return errors.WithMessage(constant.ErrStructTransform, err.Error()) } - createItem.MysqlName = mysqlName if err := mysqlRepo.Create(context.Background(), &createItem); err != nil { return err } @@ -626,6 +616,7 @@ func LoadMysqlClientByFrom(database string) (mysql.MysqlClient, string, error) { return nil, "", err } dbInfo.From = databaseItem.From + dbInfo.Database = database if dbInfo.From != "local" { dbInfo.Address = databaseItem.Address dbInfo.Port = databaseItem.Port diff --git a/backend/utils/mysql/client.go b/backend/utils/mysql/client.go index bc829cfd1..f52651bcb 100644 --- a/backend/utils/mysql/client.go +++ b/backend/utils/mysql/client.go @@ -28,7 +28,7 @@ type MysqlClient interface { func NewMysqlClient(conn client.DBInfo) (MysqlClient, error) { if conn.From == "local" { connArgs := []string{"exec", conn.Address, "mysql", "-u" + conn.Username, "-p" + conn.Password, "-e"} - return client.NewLocal(connArgs, conn.Address, conn.Password, conn.From), nil + return client.NewLocal(connArgs, conn.Address, conn.Password, conn.Database), nil } connArgs := fmt.Sprintf("%s:%s@tcp(%s:%d)/?charset=utf8", conn.Username, conn.Password, conn.Address, conn.Port) @@ -48,7 +48,7 @@ func NewMysqlClient(conn client.DBInfo) (MysqlClient, error) { return client.NewRemote(client.Remote{ Client: db, - From: conn.From, + Database: conn.Database, User: conn.Username, Password: conn.Password, Address: conn.Address, diff --git a/backend/utils/mysql/client/info.go b/backend/utils/mysql/client/info.go index 7e9d22582..e6d7a5f3d 100644 --- a/backend/utils/mysql/client/info.go +++ b/backend/utils/mysql/client/info.go @@ -8,6 +8,7 @@ import ( type DBInfo struct { From string `json:"from"` + Database string `json:"database"` Address string `json:"address"` Port uint `json:"port"` Username string `json:"userName"` diff --git a/backend/utils/mysql/client/local.go b/backend/utils/mysql/client/local.go index f902f9480..d1941f971 100644 --- a/backend/utils/mysql/client/local.go +++ b/backend/utils/mysql/client/local.go @@ -20,13 +20,13 @@ import ( type Local struct { PrefixCommand []string - From string + Database string Password string ContainerName string } -func NewLocal(command []string, containerName, password, from string) *Local { - return &Local{PrefixCommand: command, ContainerName: containerName, Password: password, From: from} +func NewLocal(command []string, containerName, password, database string) *Local { + return &Local{PrefixCommand: command, ContainerName: containerName, Password: password, Database: database} } func (r *Local) Create(info CreateInfo) error { @@ -272,9 +272,10 @@ func (r *Local) SyncDB(version string) ([]SyncDBInfo, error) { continue } dataItem := SyncDBInfo{ - Name: parts[0], - From: r.From, - Format: parts[1], + Name: parts[0], + From: "local", + MysqlName: r.Database, + Format: parts[1], } userLines, err := r.ExecSQLForRows(fmt.Sprintf("select user,host from mysql.db where db = '%s'", parts[0]), 300) if err != nil { diff --git a/backend/utils/mysql/client/remote.go b/backend/utils/mysql/client/remote.go index 4d67dcc1f..7fbb2eb1a 100644 --- a/backend/utils/mysql/client/remote.go +++ b/backend/utils/mysql/client/remote.go @@ -19,7 +19,7 @@ import ( type Remote struct { Client *sql.DB - From string + Database string User string Password string Address string @@ -283,8 +283,8 @@ func (r *Remote) SyncDB(version string) ([]SyncDBInfo, error) { } dataItem := SyncDBInfo{ Name: dbName, - From: r.From, - MysqlName: r.From, + From: "remote", + MysqlName: r.Database, Format: charsetName, } userRows, err := r.Client.Query("select user,host from mysql.db where db = ?", dbName)