5-7 Définir la migration
Vous devriez avoir ceci comme code de migration:
using FluentMigrator;
namespace Snowfall.Data.Migrations;
[Migration(202301311649)]
public class CreerVilles : Migration
{
public override void Up()
{
throw new NotImplementedException();
}
public override void Down()
{
throw new NotImplementedException();
}
}
Implémentation de Up()
La fonction Up() définit ce qui se produit lorsqu'une migration est exécutée. Elle fait évoluer la base de données vers un ajout: une table, une colonne, une contrainte, etc.
-
Créer une table. Pour créer une table, on utilise
Create.Tablepublic override void Up()
{
Create.Table("villes");
} -
Créer une colonne
id. Pour créer une colonne, on utiliseWithColumn().public override void Up()
{
Create.Table("villes")
.WithColumn("id");
} -
Définir le type Bigint. Comme type pour la colonne
id, unintde 64 bits sera utilisé.FluentMigrator permet de préciser le type de données de la colonne via
AsTypeDeDonnes. Par exemple, pour Int64 (Bigint):Create.Table("villes")
.WithColumn("id").AsInt64();Vous pouvez utiliser l'autocomplétion pour voir les différents types disponibles.

-
Définir comme clé primaire. La colonne
idsera la clé primaire de la table. On peut le définir via la fonctionPrimaryKey().Create.Table("villes")
.WithColumn("id").AsInt64().PrimaryKey(); -
Définir comme clé "identity". La colonne sera entièrement gérée par le système de base de données, c'est-à-dire que Postgres incrémentera automatiquement l'identifiant. On utilise
Identity()pour ce faire.Create.Table("villes")
.WithColumn("id").AsInt64().PrimaryKey().Identity(); -
Créer les colonnes
nometpays_iso. Selon le même principe:public override void Up()
{
Create.Table("villes")
.WithColumn("id").AsInt64().PrimaryKey().Identity()
.WithColumn("nom").AsString(255)
.WithColumn("pays_iso").AsString(2);
}Le paramètre
2passé à la fonctionAsString(2)pour la colonnepays_isoreprésente la longueur, soit 2 caractères dans ce cas.