mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-10-09 03:26:42 +08:00
serve: update casbin lib support sqlite db
This commit is contained in:
parent
e94d2ce9b2
commit
1c08fa70b4
@ -9,11 +9,12 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/casbin/casbin/v2/model"
|
"github.com/casbin/casbin/v2/model"
|
||||||
"github.com/casbin/casbin/v2/persist"
|
"github.com/casbin/casbin/v2/persist"
|
||||||
"github.com/gogf/gf/v2/database/gdb"
|
"github.com/gogf/gf/v2/database/gdb"
|
||||||
"math"
|
|
||||||
"strings"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -31,6 +32,19 @@ CREATE TABLE IF NOT EXISTS %s (
|
|||||||
v5 varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
v5 varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (id) USING BTREE
|
PRIMARY KEY (id) USING BTREE
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '管理员_casbin权限表' ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '管理员_casbin权限表' ROW_FORMAT = Dynamic;
|
||||||
|
`
|
||||||
|
createPolicyTableSql_sqlite = `
|
||||||
|
CREATE TABLE IF NOT EXISTS %s (
|
||||||
|
id INTEGER NOT NULL ,
|
||||||
|
p_type TEXT DEFAULT NULL,
|
||||||
|
v0 TEXT DEFAULT NULL,
|
||||||
|
v1 TEXT DEFAULT NULL,
|
||||||
|
v2 TEXT DEFAULT NULL,
|
||||||
|
v3 TEXT DEFAULT NULL,
|
||||||
|
v4 TEXT DEFAULT NULL,
|
||||||
|
v5 TEXT DEFAULT NULL,
|
||||||
|
PRIMARY KEY (id)
|
||||||
|
);
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -87,8 +101,11 @@ func NewAdapter(link string) (adp *adapter, err error) {
|
|||||||
err = errInvalidDatabaseLink
|
err = errInvalidDatabaseLink
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
cNode := gdb.ConfigNode{Type: config[0], Link: config[1]}
|
||||||
if adp.db, err = gdb.New(gdb.ConfigNode{Type: config[0], Link: config[1]}); err != nil {
|
if config[0] == "sqlite" {
|
||||||
|
cNode = gdb.ConfigNode{Type: "sqlite", Link: link}
|
||||||
|
}
|
||||||
|
if adp.db, err = gdb.New(cNode); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,7 +120,11 @@ func (a *adapter) model() *gdb.Model {
|
|||||||
|
|
||||||
// create a policy table when it's not exists.
|
// create a policy table when it's not exists.
|
||||||
func (a *adapter) createPolicyTable() (err error) {
|
func (a *adapter) createPolicyTable() (err error) {
|
||||||
_, err = a.db.Exec(context.TODO(), fmt.Sprintf(createPolicyTableSql, a.table))
|
createSql := fmt.Sprintf(createPolicyTableSql, a.table)
|
||||||
|
if a.db.GetConfig().Type == "sqlite" {
|
||||||
|
createSql = fmt.Sprintf(createPolicyTableSql_sqlite, a.table)
|
||||||
|
}
|
||||||
|
_, err = a.db.Exec(context.TODO(), createSql)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,14 +8,15 @@ package main
|
|||||||
import (
|
import (
|
||||||
_ "hotgo/internal/packed"
|
_ "hotgo/internal/packed"
|
||||||
|
|
||||||
|
_ "github.com/gogf/gf/contrib/drivers/mysql/v2"
|
||||||
|
_ "github.com/gogf/gf/contrib/drivers/sqlite/v2"
|
||||||
|
_ "github.com/gogf/gf/contrib/nosql/redis/v2"
|
||||||
|
|
||||||
_ "hotgo/addons/modules"
|
_ "hotgo/addons/modules"
|
||||||
"hotgo/internal/cmd"
|
"hotgo/internal/cmd"
|
||||||
"hotgo/internal/global"
|
"hotgo/internal/global"
|
||||||
_ "hotgo/internal/logic"
|
_ "hotgo/internal/logic"
|
||||||
|
|
||||||
_ "github.com/gogf/gf/contrib/drivers/mysql/v2"
|
|
||||||
_ "github.com/gogf/gf/contrib/drivers/sqlite/v2"
|
|
||||||
_ "github.com/gogf/gf/contrib/nosql/redis/v2"
|
|
||||||
"github.com/gogf/gf/v2/os/gctx"
|
"github.com/gogf/gf/v2/os/gctx"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -227,7 +227,8 @@ database:
|
|||||||
<<: *defaultLogger
|
<<: *defaultLogger
|
||||||
stdout: true
|
stdout: true
|
||||||
default:
|
default:
|
||||||
link: "mysql:root:root@tcp(127.0.0.1:3306)/test?loc=Local&parseTime=true"
|
# link: "mysql:root:root@tcp(127.0.0.1:3306)/test?loc=Local&parseTime=true"
|
||||||
|
link: "sqlite::@file(./resource/db.sqlite3)"
|
||||||
debug: true
|
debug: true
|
||||||
Prefix: "hg_"
|
Prefix: "hg_"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user