跳到主内容

数据初始化

当将Casdoor作为更大产品的一部分进行交付时,请预加载组织、应用、用户及其他数据,以便用户无需手动配置即可获得可用的设置。 数据初始化使用您提供的或生成的JSON文件。

数据初始化使用您提供的或生成的JSON文件。

导入

默认情况下,Casdoor会在启动时在项目根目录下查找``init_data.json文件,如果存在则加载它。 要使用其他路径,请在conf/app.conf中设置initDataFile:

initDataFile = /path/to/your/init_data.json

模板可在以下位置找到:init_data.json.template. 复制并重命名为init_data.json并根据需要进行自定义。

Docker

通过卷将文件挂载到容器中:

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

Kubernetes

将文件存储在ConfigMap中,并将其挂载到Casdoor Pod中:

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

在您的部署中挂载ConfigMap,例如:

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配置数据导出到JSON文件,以进行备份或迁移。

使用二进制文件(推荐)

使用``-export标志运行Casdoor,以将数据库转储为JSON:

# Export to default location (init_data_dump.json)
./casdoor -export

# Export to a custom path
./casdoor -export -exportPath /path/to/backup.json

导出在数据库初始化后运行,然后进程退出。 它适用于二进制、Docker 或 Kubernetes,且无需 Go 工具链。

使用Go测试(从源码编译)

来自Casdoor源代码树:

go test ./object -v -run TestDumpToFile

这会在该目录中创建init_data_dump.json文件。

迁移到另一个实例

init_data_dump.json重命名为init_data.json,将其放置在目标Casdoor实例的根目录下,然后启动Casdoor;数据将自动加载。

支持的对象

以下对象类型可包含在初始化文件中:

对象Go 结构体文档
组织机构structdoc
应用structdoc
用户structdoc
证书structdoc
提供商structdoc
ldapsstruct文档
模型结构体
权限结构体文档
支付结构体文档
产品结构体文档
资源结构体文档
角色结构体文档
同步器结构体文档
令牌结构体文档
webhooks结构体文档
结构体文档
适配器结构体文档
结构体
计划结构体文档
结构体文档
邀请struct文档
记录结构体
sessionsstruct
subscriptions结构体文档
transactionsstruct

如需确切的JSON格式,请调用REST API或在浏览器中查看GetXXX响应;它们与init_data.json中预期的结构相匹配。