die folgende Migration Gegeben:FluentMigrator Rollback zurück zu einer nicht Nullable Spalte?
[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();
}
}
Der Migrator ändert eine Spalte und macht es auf NULL festlegbare und bei der Rücknahme tut es das Gegenteil und macht es wieder nicht nullable.
Nehmen wir an, Daten wurden seit der Migration zu foo
hinzugefügt; Es gibt jetzt Zeilen mit Null in bar
Spalte.
Wenn es zurückgerollt wird, dann wird der Vorgang fehlschlagen, gibt es irgendeinen Weg in fluentmigrator, dieses Szenario zu behandeln? Oder was ist die beste Vorgehensweise?
Ich vermute, das würde nicht funktionieren, wenn 'bar' eine Fremdschlüsselspalte ist? Kann eine Down-Methode leer gelassen werden? – user1838662
Wenn es sich um eine Fremdschlüsselspalte handelt, muss die SQL-Abfrage etwas intelligenter sein und den richtigen Wert finden. Oder haben Sie einen Fremdschlüsselwert, der standardmäßig funktioniert? –
Leider gibt es keinen Standard-Fremdschlüsselwert. '0' würde auf einen Datensatz in der übergeordneten Tabelle zeigen, der nicht existiert. – user1838662