Initialisation des données
Si vous déployez Casdoor avec d'autres services en tant qu'application complète, vous voudrez peut-être fournir une fonctionnalité clé en main pour les utilisateurs. Cela signifie que les utilisateurs peuvent utiliser directement l'application sans aucune configuration.
Dans une telle situation, vous pouvez utiliser l'initialisation des données pour enregistrer votre service dans Casdoor via un fichier de configuration. Ce fichier peut être prédéfini ou généré dynamiquement par votre propre service.
Ici, nous donnons un tutoriel pour importer ou exporter des données de configuration.
Importer des données de configuration
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.
Si vous utilisez l'image Docker officielle de Casdoor, voici quelques scripts qui peuvent vous aider à monter init_data.json dans le conteneur.
Un modèle pour init_data.json est fourni à : init_data.json.template. Renommez-le en init_data.json avant de l'utiliser.
Pour Docker
Si vous déployez Casdoor avec Docker, vous pouvez utiliser la commande volume pour monter init_data.json dans le conteneur.
docker run ... -v /path/to/init_data.json:/init_data.json
Pour Kubernetes
Si vous déployez Casdoor avec Kubernetes, vous pouvez utiliser le configmap pour stocker init_data.json.
apiVersion: v1
kind: ConfigMap
metadata:
name: casdoor-init-data
data:
init_data.json:
Vous pouvez monter les données dans les pods Casdoor en montant le configmap. Vous pouvez modifier votre déploiement comme suit :
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
Exporter des données de configuration
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.
Références
Tous les objets Casdoor pris en charge par l'initialisation des données sont les suivants :
| Objet | Structure Go | Documentation |
|---|---|---|
| organisations | struct | doc |
| applications | struct | doc |
| utilisateurs | struct | doc |
| certificats | struct | doc |
| fournisseurs | struct | doc |
| ldaps | struct | doc |
| modèles | structure | |
| permissions | struct | doc |
| paiements | struct | doc |
| produits | structure | doc |
| ressources | structure | doc |
| rôles | structure | doc |
| synchroniseurs | structure | doc |
| jetons | structure | doc |
| webhooks | structure | doc |
| groupes | structure | doc |
| adaptateurs | structure | doc |
| contrôleurs d'accès | structure | |
| plans | struct | doc |
| tarifications | struct | doc |
| invitations | structure | doc |
| enregistrements | struct | |
| sessions | structure | |
| abonnements | structure | doc |
| transactions | structure |
Si vous êtes toujours confus sur la façon de remplir ce modèle, vous pouvez appeler l'API RESTful ou utiliser le mode débogage de votre navigateur pour voir la réponse de GetXXX à ces objets. Les réponses sont dans le même format que init_data.json.