如何从 gorm 中的模型中获取 table 名称?
How to get a table name from a model in gorm?
是否可以获取模型的 table 名称?我看到可以从 ModelStruct 获取它,但我不知道如何正确地做到这一点。我没有找到这个结构的任何初始化。
user := User{}
tableName := db...
像这样:
tableName := db.NewScope(model).GetModelStruct().TableName(db)
更新:
更短
tableName := db.NewScope(model).TableName()
对于 Gorm v2,根据 https://github.com/go-gorm/gorm/issues/3603,
你可以这样做:
stmt := &gorm.Statement{DB: DB}
stmt.Parse(&ColumnStruct2{})
stmt.Schema.Table
Gorm v2 的另一种方法,不传递 DB 对象。
type WeatherStation struct{}
s, _ := schema.Parse(&WeatherStation{}, &sync.Map{}, schema.NamingStrategy{})
fmt.Println(s.Table)
是否可以获取模型的 table 名称?我看到可以从 ModelStruct 获取它,但我不知道如何正确地做到这一点。我没有找到这个结构的任何初始化。
user := User{}
tableName := db...
像这样:
tableName := db.NewScope(model).GetModelStruct().TableName(db)
更新: 更短
tableName := db.NewScope(model).TableName()
对于 Gorm v2,根据 https://github.com/go-gorm/gorm/issues/3603, 你可以这样做:
stmt := &gorm.Statement{DB: DB}
stmt.Parse(&ColumnStruct2{})
stmt.Schema.Table
Gorm v2 的另一种方法,不传递 DB 对象。
type WeatherStation struct{}
s, _ := schema.Parse(&WeatherStation{}, &sync.Map{}, schema.NamingStrategy{})
fmt.Println(s.Table)