Инициализация данных
Если вы развертываете 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:
Вы можете смонтировать данные в pods Casdoor, смонтировав 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:
Using the Binary (Recommended)
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 | doc |
| приложения | struct | doc |
| пользователи | struct | doc |
| сертификаты | struct | doc |
| провайдеры | struct | doc |
| ldap | struct | документация |
| модели | struct | |
| разрешения | struct | doc |
| платежи | struct | документация |
| продукты | struct | документация |
| ресурсы | struct | документация |
| роли | struct | документация |
| синхронизаторы | struct | документация |
| токены | struct | документация |
| вебхуки | struct | документация |
| группы | struct | документация |
| адаптеры | struct | документация |
| принудители | struct | |
| планы | struct | doc |
| ценообразование | struct | документация |
| приглашения | struct | документация |
| записи | struct | |
| сессии | struct | |
| подписки | struct | doc |
| транзакции | struct |
Если вы все еще чувствуете себя сбитым с толку при заполнении этого шаблона, вы можете вызвать RESTful API или использовать режим отладки вашего браузера, чтобы увидеть ответ GetXXX на эти объекты. Ответы представлены в том же формате, что и init_data.json.