跳到主内容

数据初始化

如果你正在将Casdoor与其他服务一起部署为一个完整的应用,你可能希望为用户提供一个开箱即用的功能。 这意味着用户可以直接使用应用程序,无需任何配置。

在这种情况下,您可以使用数据初始化通过配置文件在Casdoor中注册您的服务。 此文件可以预先定义,或由您自己的服务动态生成。

这里提供一个导入或导出配置数据的教程。

导入配置数据

如果在Casdoor的根目录中有一个名为init_data.json的配置文件,它将被用来初始化Casdoor中的数据。 你只需要将此文件放在Casdoor将要运行的根目录中。

如果您正在使用Casdoor的官方Docker镜像,这里有一些脚本可以帮助您将init_data.json挂载到容器中。

init_data.json 可参照模板: init_data.json.template 在使用之前将它重命名为 init_data.json

对于 Docker

如果你使用Docker部署Casdoor,你可以使用volume命令将init_data.json挂载到容器中。

docker run ... -v /path/to/init_data.json:/init_data.json

对于 Kubernetes:

如果你使用Kubernetes部署Casdoor,你可以使用configmap来存储init_data.json

apiVersion: v1
kind: ConfigMap
metadata:
name: casdoor-init-data
data:
init_data.json:

您可以通过挂载 configmap 将数据挂载到Casdoor的pods中。 您可以按照以下方式修改您的deployment

apiVersion: apps/v1
kind: Deployment
...
spec:
template:
...
spec:
containers:
...
volumeMounts:
- mountPath: /init_data.json
name: casdoor-init-data-volume
subPath: init_data.json
volumes:
- configMap:
name: casdoor-init-data
name: casdoor-init-data-volume

导出配置数据

您也可以导出所有的 Casdoor 配置数据到数据迁移文件。 A Go test named TestDumpToFile() is provided at: init_data_dump_test.go

go test ./object -v -run TestDumpToFile

在完成 Go 测试之后,将在同一个目录中生成名为 init_data_dump.json 的文件。 此文件包含完整的 Casdoor 配置数据。 如果你想迁移数据到另一个 Casdoor 实例,重命名 init_data_dump.jsoninit_data.json 并将其移动到目标 Casdoor 的根文件夹即可。

引用

数据初始化支持的所有 Casdoor 对象如下:

对象Go 结构体文档
组织机构structdoc
应用structdoc
用户structdoc
证书struct
提供商structdoc
ldapsstructdoc
modelsstruct
permissionsstruct文档
paymentsstruct文档
productsstruct文档
resourcesstruct文档
rolesstruct文档
syncersstruct文档
tokensstruct文档
webhooksstruct文档
groupsstruct文档
adaptersstruct文档
enforcersstruct
plansstruct文档
pricingsstruct文档
invitationsstruct文档
recordsstruct
sessionsstruct
subscriptionsstruct文档
transactionsstruct

如果你对填写这个模板仍然感到困惑,你可以调用RESTful API,或者使用浏览器的调试模式来查看GetXXX对这些对象的响应。 响应的格式与init_data.json相同。