Dati i seguenti migrazione:FluentMigrator ritorna su una colonna Not Nullable?
[Migration(1)]
public class Mig001 : Migration
{
public override void Up()
{
Alter.Table("foo").AlterColumn("bar").AsInt32().Nullable();
}
public override void Down()
{
Alter.Table("foo").AlterColumn("bar").AsInt32().NotNullable();
}
}
Il migratore altera una colonna e rende annullabile e sul ripristino avviene il contrario e rende non annullabile nuovamente.
Diciamo che i dati sono stati aggiunti a foo
dalla migrazione; ora ci sono righe con null nella colonna bar
.
Se viene eseguito il rollback, l'operazione avrà esito negativo, è possibile che in fluentmigrator sia in grado di gestire questo scenario? O qual è la migliore pratica.
Sto indovinando che non avrebbe funzionato se 'bar' era una colonna di chiave esterna? Un metodo Down può essere lasciato vuoto? – user1838662
Se è una colonna di chiave esterna, la query sql dovrà essere un po 'più intelligente e trovare il valore corretto da impostare. O hai un valore di chiave esterna che funzionerebbe come predefinito? –
Sfortunatamente non esiste un valore di chiave esterna predefinito. '0' Punterebbe a un record nella tabella padre che non esiste. – user1838662