From ecc444db9f1f5dbb84c73cff5e458a266441ba22 Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Mon, 4 Sep 2023 14:20:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=A7=84=E5=88=99=20(#2166)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/repo/database.go | 14 ++++++++++---- backend/init/migration/migrations/init.go | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/backend/app/repo/database.go b/backend/app/repo/database.go index 462ea9022..527b8f7b7 100644 --- a/backend/app/repo/database.go +++ b/backend/app/repo/database.go @@ -101,16 +101,22 @@ func (d *DatabaseRepo) WithoutByFrom(from string) DBOption { func (d *DatabaseRepo) WithTypeList(dbType string) DBOption { return func(g *gorm.DB) *gorm.DB { - types := strings.Split(dbType, ",") - if len(types) == 1 { + if !strings.Contains(dbType, ",") { return g.Where("`type` = ?", dbType) } + types := strings.Split(dbType, ",") + var ( + rules []string + values []interface{} + ) for _, ty := range types { if len(ty) != 0 { - g.Or("`type` = ?", ty) + rules = append(rules, "`type` = ?") + values = append(values, ty) } } - return g + fmt.Println(strings.Join(rules, " OR ")) + return g.Where(strings.Join(rules, " OR "), values...) } } diff --git a/backend/init/migration/migrations/init.go b/backend/init/migration/migrations/init.go index 699c66e81..4af909d4d 100644 --- a/backend/init/migration/migrations/init.go +++ b/backend/init/migration/migrations/init.go @@ -486,7 +486,7 @@ var EncryptHostPassword = &gormigrate.Migration{ var AddRemoteDB = &gormigrate.Migration{ ID: "20230724-add-remote-db", Migrate: func(tx *gorm.DB) error { - if err := tx.AutoMigrate(&model.DatabaseMysql{}); err != nil { + if err := tx.AutoMigrate(&model.Database{}, &model.DatabaseMysql{}); err != nil { return err } var (