2011-12-05 11 views
5

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?

risposta

15

Per eseguire la migrazione verso il basso, utilizzare "-t migrate: down". Oltre a down e up, l'aiuto per migrate.exe elenca anche rollback, rollback: toversion e rollback: all.

+0

acclamazione amico, non posso credere di averlo perso! rtfm ftw – jcvandan