From 9a667c880321b40ae7aa6d3b3ea783dfba20b6b0 Mon Sep 17 00:00:00 2001 From: wenzi1 Date: Wed, 11 Mar 2020 22:45:38 +0800 Subject: [PATCH] add Tables and TableFields method for sqlite --- database/gdb/gdb_driver_sqlite.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/database/gdb/gdb_driver_sqlite.go b/database/gdb/gdb_driver_sqlite.go index 5e7f9ac34..a39335604 100644 --- a/database/gdb/gdb_driver_sqlite.go +++ b/database/gdb/gdb_driver_sqlite.go @@ -63,8 +63,12 @@ func (d *DriverSqlite) HandleSqlBeforeCommit(link Link, sql string, args []inter // It's mainly used in cli tool chain for automatically generating the models. func (d *DriverSqlite) Tables(schema ...string) (tables []string, err error) { var result Result + link, err := d.DB.GetSlave(schema...) + if err != nil { + return nil, err + } - result, err = d.DB.DoGetAll(nil, `SELECT NAME FROM SQLITE_MASTER WHERE TYPE='table' ORDER BY NAME`) + result, err = d.DB.DoGetAll(link, `SELECT NAME FROM SQLITE_MASTER WHERE TYPE='table' ORDER BY NAME`) if err != nil { return } @@ -90,8 +94,12 @@ func (d *DriverSqlite) TableFields(table string, schema ...string) (fields map[s v := d.DB.GetCache().GetOrSetFunc( fmt.Sprintf(`sqlite_table_fields_%s_%s`, table, checkSchema), func() interface{} { var result Result - - result, err = d.DB.DoGetAll(nil, fmt.Sprintf(`PRAGMA TABLE_INFO(%s)`, table)) + var link *sql.DB + link, err = d.DB.GetSlave(checkSchema) + if err != nil { + return nil + } + result, err = d.DB.DoGetAll(link, fmt.Sprintf(`PRAGMA TABLE_INFO(%s)`, table)) if err != nil { return nil }