refactor: use xorm's TableInfo to resolve table names
Use engine.TableInfo(bean) instead of manually checking the TableName interface and falling back to the mapper. This delegates all table name resolution to xorm's own logic.
This commit is contained in:
parent
1e0d29e090
commit
85678082f9
10
pkg/db/db.go
10
pkg/db/db.go
|
|
@ -21,7 +21,6 @@ import (
|
|||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
|
@ -59,14 +58,13 @@ func RegisterTables(tables []interface{}) {
|
|||
|
||||
// RegisteredTableNames returns the table names of all registered Vikunja tables.
|
||||
func RegisteredTableNames() []string {
|
||||
mapper := x.GetTableMapper()
|
||||
tableNames := make([]string, 0, len(registeredTables)+1)
|
||||
for _, bean := range registeredTables {
|
||||
if tn, ok := bean.(interface{ TableName() string }); ok {
|
||||
tableNames = append(tableNames, tn.TableName())
|
||||
} else {
|
||||
tableNames = append(tableNames, mapper.Obj2Table(reflect.Indirect(reflect.ValueOf(bean)).Type().Name()))
|
||||
tableInfo, err := x.TableInfo(bean)
|
||||
if err != nil {
|
||||
log.Fatalf("Could not get table info for bean: %v", err)
|
||||
}
|
||||
tableNames = append(tableNames, tableInfo.Name)
|
||||
}
|
||||
// The xormigrate migration tracking table is not registered via GetTables()
|
||||
tableNames = append(tableNames, "migration")
|
||||
|
|
|
|||
Loading…
Reference in New Issue