Skip to content

配置数据库(高级)

Tnze edited this page Sep 2, 2019 · 3 revisions

警告:以下内容难度较高,一般用户无需关心

写得比较乱,请凑合着看

与大多数酷Q插件一样,在默认情况下的SiS使用SQLite储存数据,而且在更高阶的用法中,SiS支持对数据库进行更深度的配置。

对于更大型的服务器,SQLite数据库可能并不能满足我们对稳定性的要求,这时候我们可以将SiS配置为使用MySQL驱动的数据库。 在conf.toml中,Database.Driver字段用于配置SiS所使用的驱动。
目前的版本中(v.1.1.0),SiS内置了两种驱动:sqlite3和mysql,修改配置文件即可更改SiS所使用的驱动。对于不同的驱动,Database.Source字段的填写也是完全不同的呢~

sqlite3

作为最简单的用法,可以直接设置数据库文件名Source = "data.db",但是这并不是基于应用路径,而是酷Q的运行路径。
为了获取应用路径,我们可以这样填写:{{ .AppDir }}data.db,在内部就会被替换为D:\酷Q Pro\data\app\cn.miaoscraft.sis\data.db(基于您酷Q的位置而改变),这个{{ .AppDir }}是酷Q返回的应用路径,末尾带\。 一个更推荐的写法则是{{ join .AppDir "data.db" }}join用于将两个路径连在一起,自动处理其中的分隔符。欲知道更详细的信息,您可能就需要阅读SiS源码、学习go语言标准库text/template的用法了。所以建议直接写{{ join .AppDir "data.db" }}就好了,注意就是写到toml里面的时候引号"前要加反斜线\转义:Source = "{{ join .AppDir \"data.db\"}}",其它就没什么了。

mysql

在使用MySQL的时候,Source写的是数据库服务器的路径,具体格式为 用户:密码@tcp(地址:端口)/库名,库名指定的库需要手动创建。

而且由于默认创建的表是用于SQLite的,所以两张表也需要提前手动创建
创建users表:

create table users
(
    QQ   bigint     not null
        primary key,
    UUID binary(16) not null
);

创建auths表:

create table auths
(
    QQ    bigint        not null
        primary key,
    Level int default 0 null
);

配置好数据库后重载SiS,若不报错则连接成功,可以尝试使用MyID指令查看数据是否成功存入数据库。
配置MySQL难度较高,如果有任何问题的话可以加入交流群交流交流~

Clone this wiki locally