数据初始化
当将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 结构体 | 文档 |
|---|---|---|
| 组织机构 | struct | doc |
| 应用 | struct | doc |
| 用户 | struct | doc |
| 证书 | struct | doc |
| 提供商 | struct | doc |
| ldaps | struct | 文档 |
| 模型 | 结构体 | |
| 权限 | 结构体 | 文档 |
| 支付 | 结构体 | 文档 |
| 产品 | 结构体 | 文档 |
| 资源 | 结构体 | 文档 |
| 角色 | 结构体 | 文档 |
| 同步器 | 结构体 | 文档 |
| 令牌 | 结构体 | 文档 |
| webhooks | 结构体 | 文档 |
| 组 | 结构体 | 文档 |
| 适配器 | 结构体 | 文档 |
| 结构体 | ||
| 计划 | 结构体 | 文档 |
| 结构体 | 文档 | |
| 邀请 | struct | 文档 |
| 记录 | 结构体 | |
| sessions | struct | |
| subscriptions | 结构体 | 文档 |
| transactions | struct |
如需确切的JSON格式,请调用REST API或在浏览器中查看GetXXX响应;它们与init_data.json中预期的结构相匹配。