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"
|
||||
"errors"
|
||||
"fmt"
|
||||
"math"
|
||||
"strings"
|
||||
|
||||
"github.com/casbin/casbin/v2/model"
|
||||
"github.com/casbin/casbin/v2/persist"
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"math"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -31,6 +32,19 @@ CREATE TABLE IF NOT EXISTS %s (
|
||||
v5 varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||
PRIMARY KEY (id) USING BTREE
|
||||
) 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
|
||||
return
|
||||
}
|
||||
|
||||
if adp.db, err = gdb.New(gdb.ConfigNode{Type: config[0], Link: config[1]}); err != nil {
|
||||
cNode := gdb.ConfigNode{Type: config[0], Link: config[1]}
|
||||
if config[0] == "sqlite" {
|
||||
cNode = gdb.ConfigNode{Type: "sqlite", Link: link}
|
||||
}
|
||||
if adp.db, err = gdb.New(cNode); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@ -103,7 +120,11 @@ func (a *adapter) model() *gdb.Model {
|
||||
|
||||
// create a policy table when it's not exists.
|
||||
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
|
||||
}
|
||||
|
||||
|
@ -8,14 +8,15 @@ package main
|
||||
import (
|
||||
_ "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/internal/cmd"
|
||||
"hotgo/internal/global"
|
||||
_ "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"
|
||||
)
|
||||
|
||||
|
@ -227,7 +227,8 @@ database:
|
||||
<<: *defaultLogger
|
||||
stdout: true
|
||||
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
|
||||
Prefix: "hg_"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user