跳到主要内容

维护数据库

Current 采用 SQLite 本地数据库存储数据,分为两个数据库文件:

/backend/orion.db
- users: 存储用户数据
- sessions: 存储当前已登录用户的活跃会话
- permissions: 存储用户权限
- configuration: 存储系统配置(公告内容)
- auditlog: 存储操作日志
/backend/current.db
- issues: 存储期刊数据
- entries: 存储稿件数据
- sudo: 专门存储超级管理员在管理面板的活跃会话
信息

由于 Current 还在开发中,暂未完全实现管理面板功能,因此部分管理操作需要您直接操作 SQLite 数据库。

您需要一个可用的 SQLite 数据库编辑软件(如 Navicat、JetBrains DataGrip、DB Browser for SQLite)来操作数据库。

管理用户

用户数据存储于 orion.dbusers 表中。

列名类型描述
idINTEGER用户 ID
nameTEXT用户名
passwdTEXT密码(SHA-256 加密)
gradeTEXT用户年级
classnumTEXT用户班级
activeTEXT是否活跃(truefalse

您可以通过直接编辑 users 表来添加、删除用户数据,或是重置密码。

提示

密码 123456 对应的 SHA-256 加密值为 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92。您可以依据此为其他用户重置密码。

如何计算 SHA-256?前往 SHA-256 Calculator

管理用户权限

用户权限存储于 orion.dbpermissions 表中。

列名类型描述
targetTEXT权限应用目标
nodeTEXT权限节点名

权限数据以权限节点的方式存储,并且以 group. 起始的权限节点拥有继承性。

对于普通用户,必须 授予 group.default 权限(这包括 client.loginclient.changepass 等基础权限),否则用户无法登录(利用此机制也可以做到封禁账号的效果)。

对于管理员,可直接授予 * 权限,即拥有所有权限。

管理期刊

期刊数据存储于 current.dbissues 表中。

列名类型描述
idINTEGER期刊 ID
dateINTEGER期刊截止日期(Unix 时间戳)
subject2TEXT期刊第 2 版标题
subject3TEXT期刊第 3 版标题
subject4TEXT期刊第 4 版标题
leaderTEXT期刊主编 (暂时弃用)
editorsTEXT期刊编辑,以 [...] 列表形式存储 (暂时弃用)
respeditorTEXT责任编辑 (暂时弃用)
ispublishedINTEGER期刊是否已发布(0 为未发布,1 为已发布)

对于新建期刊,可直接在前端 /newissue 完成。

管理稿件

稿件数据存储于 current.dbentries 表中。

列名类型描述
uuidTEXT稿件 UUID
issue_idINTEGER期刊 ID
filenameTEXT稿件原始文件名
pageINTEGER稿件版号
titleTEXT稿件标题
originTEXT稿件来源
wordcountINTEGER稿件字数
descriptionTEXT稿件简介
selectorTEXT稿件选稿人
reviewerTEXT稿件审稿人
statusTEXT稿件状态

大部分稿件数据可以在前端 /issue/[issue_id] 完成,但是审稿人、选稿人等数据需要在数据库中手动编辑。

为保证服务器安全,上传的文件不会保留原始名称,而是重命名为稿件 uuid,可在 /backend/uploads 目录下找到。

稿件状态一般有三种:created 为已创建,reviewed 为已审稿,selected 为已选录。

状态为 pending 的稿件为上传时出现连接丢失等问题,如无特殊情况可以选择忽略或删除。