Перейти до основного вмісту

Ініціалізація даних

Якщо ви розгортаєте Casdoor разом з іншими сервісами як повноцінний додаток, ви можете надати користувачам функцію «з коробки». Це означає, що користувачі можуть безпосередньо використовувати додаток без будь-якої конфігурації.

У такій ситуації ви можете використовувати ініціалізацію даних для реєстрації вашого сервісу в Casdoor через файл конфігурації. Цей файл може бути попередньо визначений або динамічно згенерований вашим сервісом.

Тут ми даємо підручник для імпорту або експорту конфігураційних даних.

Імпорт конфігураційних даних

By default, if there is a configuration file named init_data.json at the root directory of Casdoor, it will be used to initialize data in Casdoor. You can also specify a custom path for the initialization file by setting the initDataFile parameter in conf/app.conf:

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

If no custom path is specified, Casdoor will look for init_data.json in the root directory where Casdoor runs.

Якщо ви використовуєте офіційний Docker-образ Casdoor, ось деякі скрипти, які можуть допомогти вам змонтувати init_data.json у контейнер.

Шаблон для init_data.json надається за адресою: init_data.json.template. Перейменуйте його в init_data.json перед використанням.

Для Docker

Якщо ви розгортаєте Casdoor з Docker, ви можете використовувати команду volume для монтування init_data.json у контейнер.

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

Для Kubernetes

Якщо ви розгортаєте Casdoor з Kubernetes, ви можете використовувати configmap для зберігання init_data.json.

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

Ви можете змонтувати дані в Casdoor pods, змонтувавши configmap. Ви можете змінити ваш 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

Експорт конфігураційних даних

You can export all Casdoor configuration data to a file for backup or migration purposes. There are two methods available:

If you're running Casdoor from a binary, use the -export flag to dump the database to a JSON file:

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

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

The export runs after database initialization but before the server starts, then exits automatically. This method works with any deployment method (binary, Docker, Kubernetes) and doesn't require Go toolchain or source code access.

Using Go Test

If you have access to the source code, you can use the test method:

go test ./object -v -run TestDumpToFile

This will generate init_data_dump.json in the same directory.

Migrating Data

After exporting, rename init_data_dump.json to init_data.json and place it in the root directory of your target Casdoor installation. On startup, Casdoor will automatically import the data.

Довідники

Всі об'єкти Casdoor, які підтримуються ініціалізацією даних, наведені нижче:

Об'єктGo StructДокументація
організаціїstructdoc
додаткиstructdoc
користувачіstructdoc
сертифікатиstructdoc
провайдериstructdoc
ldapsstructдокументація
моделіstruct
дозволиstructdoc
платежіstructдокументація
продуктиstructдокументація
ресурсиstructдокументація
роліstructдокументація
синхронізаториstructдокументація
токениstructдокументація
вебхукиstructдокументація
групиstructдокументація
адаптериstructдокументація
примусові виконавціstruct
планиstructdoc
ціноутворенняstructдокументація
запрошенняstructдокументація
записиstruct
сесіїstruct
підпискиstructdoc
транзакціїstruct

Якщо ви все ще відчуваєте плутанину щодо заповнення цього шаблону, ви можете викликати RESTful API або використовувати режим налагодження вашого браузера, щоб побачити відповідь GetXXX на ці об'єкти. Відповіді мають такий самий формат, як init_data.json.