fix: mysql FULLTEXT search (#2840)

pull/2849/head
BoYanZh 2022-12-30 14:20:04 +08:00 committed by GitHub
parent f777a2fab4
commit 143e4cd077
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 11 deletions

View File

@ -13,14 +13,15 @@ var db *gorm.DB
func Init(d *gorm.DB) {
db = d
var err error
err := AutoMigrate(new(model.Storage), new(model.User), new(model.Meta), new(model.SettingItem), new(model.SearchNode))
switch conf.Conf.Database.Type {
case "sqlite3":
err = AutoMigrate(new(model.Storage), new(model.User), new(model.Meta), new(model.SettingItem), new(model.SearchNode))
case "mysql":
err = AutoMigrate(new(model.Storage), new(model.User), new(model.Meta), new(model.SettingItem), new(model.SearchNodeMySQL))
if err == nil {
tableName := fmt.Sprintf("%ssearch_nodes", conf.Conf.Database.TablePrefix)
db.Exec(fmt.Sprintf("CREATE FULLTEXT INDEX idx_%s_name_fulltext ON %s(name);", tableName, tableName))
}
case "postgres":
err = AutoMigrate(new(model.Storage), new(model.User), new(model.Meta), new(model.SettingItem), new(model.SearchNode))
if err == nil {
db.Exec("CREATE EXTENSION pg_trgm;")
db.Exec("CREATE EXTENSION btree_gin;")

View File

@ -18,13 +18,6 @@ type SearchReq struct {
PageReq
}
type SearchNodeMySQL struct {
Parent string `json:"parent" gorm:"index"`
Name string `json:"name" gorm:"index:,class:FULLTEXT"`
IsDir bool `json:"is_dir"`
Size int64 `json:"size"`
}
type SearchNode struct {
Parent string `json:"parent" gorm:"index"`
Name string `json:"name"`