跳到主内容

数据初始化

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

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

Here we give a tutorial for importing or exporting config data.

Import Config Data

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

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

A template for init_data.json is provided at: init_data.json.template. Rename it to init_data.json before using it.

For Docker

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

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

For 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

Export Config Data

You can also export all of Casdoor configuration data into a file for data migration. A Go test named TestDumpToFile() is provided at: init_data_dump_test.go

go test ./object -v -run TestDumpToFile

After running this Go test, a file named init_data_dump.json will be generated in same directory. This file contains your full Casdoor configuration data. If you want to migrate the data into another Casdoor instance, just rename init_data_dump.json to init_data.json and move it to root directory of target Casdoor folder.

References

All Casdoor objects supported by the data initialization are as follows:

对象Go 结构体文档
组织机构structdoc
应用structdoc
用户structdoc
证书struct
提供商structdoc
ldapsstructdoc
modelsstruct
permissionsstructdoc
paymentsstructdoc
productsstructdoc
resourcesstructdoc
rolesstructdoc
syncersstructdoc
tokensstructdoc
webhooksstructdoc
groupsstructdoc
adaptersstructdoc
enforcersstruct
plansstructdoc
pricingsstructdoc
invitationsstructdoc
recordsstruct
sessionsstruct
subscriptionsstructdoc
transactionsstruct

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