# Import/Export de base de données

Il est possible d’importer et exporter directement le contenu de la base de données de Waarp Transfer depuis/vers un fichier. Cela est utile lorsque plusieurs instances de Waarp Transfer ont des éléments en communs (partenaires, règles…) afin d’éviter de devoir renseigner ces éléments plusieurs fois. Cela permet également faire une sauvegarde du contenu de la base.

Les fichiers d’import/export sont en format JSON. Leur documentation complète est disponible ici.

## Export

Pour exporter la configuration de Waarp Transfer existante, la commande est `waarp-transferd export`. Cette commande va récupérer les éléments demandés depuis la base de données de Waarp Transfer, puis va les écrire dans un fichier.

Les options suivantes sont requises pour que la commande puisse s’exécuter :

- `-c`: le fichier de configuration de Waarp Transfer (contient les informations de connexion à la base de données).

- `-f`: le nom du fichier vers lequel les données seront exportées (par défaut le fichier sera nommé `waarp-transfer-export.json`).

- `-t`: les éléments à exporter, l’option peut être répétée pour exporter plusieurs éléments. Les valeurs acceptées sont `rules`, `servers`, `partners` ou `all`.

Par exemple, la commande suivante exporte les serveurs et les partenaires de la Waarp Transfer vers le fichier `transfer_backup.json` :

    waarp-transferd export -c 'waarp-transferd.ini' -f 'transfer_backup.json' -t 'servers' -t 'partners'

## Import

Pour importer un fichier de sauvegarde, la commande est `waarp-transferd import`. Cette commande va récupérer les éléments demandés dans le fichier donné, puis va les insérer dans la base de données de Transfer. La commande requiert les options suivantes :

- `-c`: le fichier de configuration de Waarp Transfer (contient les informations de connexion à la base de données).

- `-s`: le fichier source de l’import.

- `-t`: les éléments à importer. L’option peut être répétée pour importer plusieurs éléments, les valeurs acceptées sont `rules`, `servers`, `partners` ou `all`.

- `-r`: les tables de la base de données seront vidées avant d’importer les nouveaux éléments depuis le fichier (seules les tables concernées par l’import seront vidées). Pour les scripts, l’option `force-reset-before-import` est disponible afin d’outrepasser le message de confirmation.

Par exemple, la commande suivante importe les serveurs et les partenaires depuis le fichier `transfer_backup.json` et les insère dans la base de données :

    waarp-transferd import -c 'waarp-transferd.ini' -s 'transfer_backup.json' -t 'servers' -t 'partners'

La commande `import` inclue également une option `-d` ou `--dry-run` permettant de simuler l’import du fichier, mais sans appliquer les changements. Cela peut être utile pour tester si le fichier source est dans un format correct sans risquer d’insérer des éléments invalides dans la base de données.