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 (