Sto tentando di far migrare le migrazioni con il mio progetto utilizzando il migratore fluente. Ma a causa della mancanza di documentazione, sto cercando di capire come eseguire il rollback e il metodo Down
ha richiesto la mia classe di migrazione.Ritorno alla versione precedente in Fluent Migrator
ho istituito il db con una prima versione 1 classe:
[Migration(1)]
public class Baseline : Migration
{
public override void Up()
{
Execute.Script("1_Baseline\\baseline.sql");
}
public override void Down() { }
}
sto facendo funzionare le migrazioni tramite un file batch che contiene il seguente:
" .... \ tools \ fluentmigrator \ migrate.exe "--connection" Data Origine =. \ sqlexpress; Catalogo iniziale = ekmDomains; Integrated Security = true; multipleactiveresultsets = true; " --db SQLServer2005 --target "bin \ Release \ EkmDomains.Migrations.dll"
Questo funziona bene. Così ho poi scritto una seconda classe di migrazione solo per provarlo:
[Migration(2)]
public class AddNewTable : Migration
{
public override void Up()
{
Create.Table("NewTable").WithColumn("name").AsString();
}
public override void Down()
{
Delete.Table("NewTable");
}
}
Anche in questo caso dopo l'esecuzione del file batch, tutto funziona bene. Ho quindi esaminato le opzioni della riga di comando per lo strumento migratore fluente e ho visto un'opzione --version
. Ho pensato che per il rollback di una versione precedente avrei semplicemente fornito --version 1
e sarebbe stato chiamato il Down
di AddNewTable
. Ciò, tuttavia, non è stato positivo. La console visualizza semplicemente un metodo di 'commit transaction' e quindi si chiude. Ma la tabella non è stata cancellata e il numero di versione non è cambiato.
Sto facendo questo nel modo sbagliato o qualcuno può vedere qualche difetto fondamentale in come sto facendo questo?
acclamazione amico, non posso credere di averlo perso! rtfm ftw – jcvandan