系统表统一命名与迁移

This commit is contained in:
LIm1tZz7 committed 2026-10-03 17:16:26 +08:00
1 parent 4c030e6181
commit 29529444a1
7 files changed
+178 -15

No files matched your search

+15 -7
View File
@@ -188,9 +188,9 @@ memoryBackendWith trusted name ref =
}
where
-- | 按视角过滤库里的表
scoped = if trusted then filter (not . reserved . fst) else visible
scoped = if trusted then filter (not . blocked . fst) else visible
-- | 该视角下要隐藏的表
hidden = if trusted then reserved else internalTable
hidden = if trusted then blocked else internalTable
-- | 取结果列名,空结果回落到解析
colsOf db stmt rows = case rows of
[] -> columnsFromStatement db stmt
@@ -352,15 +352,15 @@ systemDatabaseName = "system"
usersTable :: String
usersTable = "__system_users"
-- | 角色与授权表的名字,不带内部前缀
-- | 角色与授权表的名字,在系统库里但服务自己要读写
rolesTable :: String
rolesTable = "sys_roles"
rolesTable = "__system_roles"
grantsTable :: String
grantsTable = "sys_grants"
grantsTable = "__system_grants"
membersTable :: String
membersTable = "sys_members"
membersTable = "__system_members"
internalNames :: [String]
internalNames = [rolesTable, grantsTable, membersTable]
@@ -369,9 +369,17 @@ internalNames = [rolesTable, grantsTable, membersTable]
reserved :: String -> Bool
reserved = T.isPrefixOf "__system_" . T.toLower . T.pack
-- | 是不是服务自己要经请求通道读写的表
privilegeTable :: String -> Bool
privilegeTable name = T.unpack (T.toLower (T.pack name)) `elem` internalNames
-- | 是不是服务自己的内部表
internalTable :: String -> Bool
internalTable name = reserved name || T.unpack (T.toLower (T.pack name)) `elem` internalNames
internalTable name = reserved name || privilegeTable name
-- | 外部语句能不能碰这张表
blocked :: String -> Bool
blocked name = reserved name && not (privilegeTable name)
-- | 去掉内部表
visible :: Database -> Database