Ho un'applicazione Web che installo sui computer dei miei clienti per il loro uso interno. Utilizzo C# MVC5 e Entity Framework code-first. Ho usato la migrazione automatica = true ma mi sono fermato e l'ho impostato su false. L'ho installato su un ambiente di produzione (release) - con un pacchetto deploy (senza Visual Studio).Database di downgrade (rollback) con codice prima nell'ambiente di produzione
Ho un cliente con l'applicazione - versione 1. Ora voglio eseguire l'aggiornamento alla versione 2. Voglio abilitare l'aggiornamento del DB dell'app (nel file di produzione, con l'installazione CMD da un pacchetto), ma per avere il possibilità di downgrade il DB se ci saranno problemi - ma senza cancellare le righe esistenti.
Ad esempio, se ho una tabella "Articoli" e Articoli ha Key, Name, Location
. In fase di aggiornamento aggiungo una nuova colonna: Email
. In caso di downgrade, la nuova colonna verrà eliminata. ho creato la migrazione su Visual Studio ho ottenere questo codice (E 'solo per l'esempio - ho più migrazioni):
public partial class AddEmail : DbMigration
{
public override void Up()
{
AddColumn("dbo.Items", "Email", c => c.String());
}
public override void Down()
{
DropColumn("dbo.Items", "Email");
}
}
Ora, ho installato la nuova versione della App sulla versione esistente e ha funzionato bene - il è stata aggiunta una nuova colonna e ha funzionato con il nuovo codice. Ho aggiunto alcuni articoli (righe).
Ora, come posso reinstallare la versione precedente in modo che la nuova colonna venga eliminata? In realtà voglio eseguire il rollback delle nuove migrazioni, ma non voglio perdere le nuove righe, ma solo le nuove colonne.
Dal momento che non ho Visual Studio sul computer del cliente, non mi è stato d'aiuto, ma nella prossima sezione di questo articolo c'è un titolo "Ottenere uno script SQL" - e questo è esattamente ciò di cui avevo bisogno. Grazie! – TamarG