Import et export de données
La commande d'import/export du projet Batch permet d'exporter les données d'une base vers un fichier, puis de les importer dans une autre base de données.
Cette commande utilise le projet Model pour lister les tables à exporter ainsi que la configuration définie dans le appSettings.json. Il faut donc s'assurer que le projet Model correspond à la base de données et que la chaîne de connexion est correcte.
Export des données
Vous pouvez utiliser la commande dump suivie de l'option -e, ou --export, terminée par le chemin d'un dossier ou fichier vers lequel les données seront exportées.
monprojet dump -f -e C:\Temp\DumpBdd.zip
Anonymisation des données
Il est recommandé de définir les règles d'anonymisation des données dans le projet Model lorsqu'on récupère un dump d'une base client, ne serait-ce que pour respecter le RGPD. Pour anonymiser les données lors de l'utilisation de la commande dump -e, il faut surcharger la méthode LoadAnonymizerRules dans votre ApplicationDbContext.
Ci-après un exemple permettant d'anonymiser les données de la table AspNetUsers lors de l'export des données :
/// <summary>
/// Database context
/// </summary>
public class ApplicationDbContext : LgApplicationTrackedChangeDbContextGuid<ApplicationUser>
{
/// <summary>
/// Loads the set of rules used to anonymize data during data dump operations.
/// </summary>
/// <returns>The anonymization rules to apply to entities and their properties.</returns>
public override DbAnonymizerRules LoadAnonymizerRules()
{
// Les règles utilisent Bogus pour générer des valeurs réalistes sur les propriétés ciblées.
// La locale "fr" permet de produire des données au format français.
DbAnonymizerRules rules = new("fr");
// Cette règle remplace les informations nominatives des utilisateurs exportés.
rules.AddRule<ApplicationUser>((user, faker) =>
{
user.FirstName = faker.Name.FirstName();
user.LastName = faker.Name.LastName();
user.UserName = $"{user.FirstName}.{user.LastName}";
user.NormalizedUserName = user.UserName.ToUpper();
user.Email = $"{user.FirstName}.{user.LastName}@foo.invalid";
user.NormalizedEmail = user.Email.ToUpper();
});
// Retourne les règles configurées pour l'export.
return rules;
}
}
Vous pouvez ajouter de nouvelles règles en fonction des données manipulées par votre application : nom de sous-traitant, montant financier ou toute autre donnée sensible.
Import de données
Vous pouvez utiliser la commande dump suivie de l'option -i, ou --import, terminée par le chemin du fichier qui doit être importé.
monprojet dump -i C:\Temp\DumpBdd.zip
Lors de l'import, les données de la base cible seront effacées. Vérifiez la chaîne de connexion dans votre appSettings.json avant de lancer un import.
Résumé des options de la commande dump
| Option | Description |
|---|---|
-e ou --export | Mode export. |
-i ou --import | Mode import. |
-f ou --force | En mode export, écrase le fichier défini s'il existe. |
-na ou --no-anonymization | Ne pas utiliser les règles d'anonymisation définies dans le modèle. |
| Argument fichier | Nom du fichier contenant les données à importer ou vers lequel exporter les données. |
Vérifications avant exécution
| Étape | Pourquoi |
|---|---|
| Contrôler la chaîne de connexion | La commande utilise la configuration du projet Batch. |
| Vérifier le modèle | Le projet Model sert à lister les tables à exporter. |
| Activer ou désactiver l'anonymisation | Les dumps issus d'une base client doivent protéger les données sensibles. |
| Confirmer la base cible avant import | L'import efface les données de la base cible. |