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.Table
public 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
, unint
de 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
id
sera 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
nom
etpays_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
2
passé à la fonctionAsString(2)
pour la colonnepays_iso
représente la longueur, soit 2 caractères dans ce cas.