数据初始化
如果你正在将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.json
到 init_data.json
并将其移动到目标 Casdoor 的根文件夹即可。
引用
数据初始化支持的所有 Casdoor 对象如下:
对象 | Go 结构体 | 文档 |
---|---|---|
组织机构 | struct | doc |
应用 | struct | doc |
用户 | struct | doc |
证书 | struct | |
提供商 | struct | doc |
ldaps | struct | doc |
models | struct | |
permissions | struct | 文档 |
payments | struct | 文档 |
products | struct | 文档 |
resources | struct | 文档 |
roles | struct | 文档 |
syncers | struct | 文档 |
tokens | struct | 文档 |
webhooks | struct | 文档 |
groups | struct | 文档 |
adapters | struct | 文档 |
enforcers | struct | |
plans | struct | 文档 |
pricings | struct | 文档 |
invitations | struct | 文档 |
records | struct | |
sessions | struct | |
subscriptions | struct | 文档 |
transactions | struct |
如果你对填写这个模板仍然感到困惑,你可以调用RESTful API,或者使用浏览器的调试模式来查看GetXXX
对这些对象的响应。 响应的格式与init_data.json
相同。