👹 Boss: Seed infos client
Dans le DEA de Snowfall, une table informations_client
est présente pour stocker les informations supplémentaires en lien avec les utilisateurs, comme l'adresse de ces derniers par exemple.
Vous devriez déjà avoir créé la migration permettant de créer la table dans votre base de données.
- À même le seed créé précédemment pour les utilisateurs (
SeedUtilisateurs
), ajoutez une insertion dans la tableinformations_client
associée à l'utilisateur présent dans le seed. Voir les lignes en surbrillance où insérer votre seed:Snowfall.Data/Migrations/202502232200_SeedUtilisateurs.cs[Migration(202502232200)]
public class SeedUtilisateurs : Migration
{
public override void Up()
{
string utilisateurGuid = System.Guid.NewGuid().ToString();
Insert.IntoTable("application_users").Row(new
{
id = utilisateurGuid,
username = "u@ser.com",
normalized_username = "U@SER.COM",
email = "u@ser.com",
normalized_email = "U@SER.com",
email_confirmed = false,
password_hash = new PasswordHasher<ApplicationUser>().HashPassword(null, "!User122432"),
prenom = "Uti",
nom = "Lisateur",
});
// Rôles
int roleUtilisateurId = 1;
Insert.IntoTable("application_roles").Row(new
{
name = "UTILISATEUR",
normalized_name = "UTILISATEUR"
});
Insert.IntoTable("application_roles_users").Row(new
{
role_id = roleUtilisateurId,
user_id = utilisateurGuid
});
// Informations client
// Ajouter une insertion pour la table informations_client, liée à l'utilisateur
}
public override void Down()
{
Delete.FromTable("application_users").AllRows();
Delete.FromTable("application_roles").AllRows();
// Supprimer les entrées dans la table informations_client
}
}
attention
Si vous aviez déjà exécuté les migrations, et donc ce seed, il ne sera pas réexécuté! Pour le réexécuter vous avez deux possibilités:
- Faire un MigrateDown() pour exécuter toutes les migrations
Down()
et revenir à l'état initial, suivi d'une migration MigrateUp() pour tout réexécuter les migrations.Program.csapp.Services.MigrateDown();
app.Services.MigrateUp(); - Manuellement supprimer toutes les tables dans votre base de données. Toutes les migrations seront exécutées au lancement.
Une fois complété, vous devriez avoir une entrée dans la table informations_client
!