Domanda

Così sono riuscito a ottenere il Primo Codice in esecuzione e funziona alla grande.

Dato che io sono ancora in via di sviluppo l'applicazione la struttura del Database non è finalizzare e quindi ho bisogno di implementare le migrazioni.

Ho seguito la Blog Ufficiale Di e ottenuto che l'Aggiornamento del Database di comando funziona.

Tuttavia, si tratta solo di aggiornamenti il SQLExpress versione del database.La versione di produzione del database è su Azure e specificare la stringa di connessione in fase di esecuzione, in modo che l'Aggiornamento del Database di comando non lavorare su questo.

Quindi la mia domanda finale è:come faccio ad applicare le migrazioni automatiche per la produzione di database, la cui stringa di connessione è specificato in fase di esecuzione?

È stato utile?

Soluzione

La console di gestione pacchetti tipo:

Get-Help Update-Database

Parte rilevante:

    Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] [-ConnectionStringName <String>] [<Com
monParameters>]

Così si può fare un Update-Database -ConnectionStringName "MyConnectionString" e dovrebbe funzionare come un fascino.

Hai anche un MigrateDatabaseToLatestVersion database di inizializzazione, se impostata (via Database.SetInitializer()), quando si distribuisce l'applicazione in produzione con la giusta stringa di connessione, al primo accesso a db dovrebbe automaticamente la migrazione di db all'ultima versione.

Suggerisco attenzione, però, sempre il backup le cose.

Aggiornamento

@Alessio Strakh recenti commenti generato un altro argomento vale la pena mettere nella risposta.

Correttamente la configurazione di un sistema di distribuzione utilizzando il Codice Prima di Migrazioni, di data 2 ConnectionStrings.

  1. Definire le stringhe di connessione nel web.config (prod e dev), con password di default
  2. Hanno il sistema di configurazione dell'applicazione conoscere prod e dev configurazioni di connessione, eventualmente costruire unità di test per garantire il diritto di uno è preso*
  3. Impiegare file di configurazione di trasformazione e farlo trasformare il vostro web.config in uno con valori di produzione
  4. Distribuire il pacchetto di produzione (questo dovrebbe essere più tagliente modo)

Non sono tenuti a interagire con l'ambiente di produzione dal proprio sistema di sviluppo, ma se si davvero bisogno di fare, che poi rendono una soluzione temporanea che deve essere ripristinato non appena il gioco è fatto.

Un'altra opzione è usare semplicemente il Web.Debug.config e Web.Il rilascio.la configurazione di un modello per il web principale.config (che sarebbe l'unico check-in nel controllo del codice sorgente).

Basta assicurarsi che mai per il check-in di produzione o di sviluppo personale password (se qualsiasi).

*È possibile utilizzare i simboli di DEBUG per verificare in che modo l'applicazione è in esecuzione.

Altri suggerimenti

Perché ENTY Framework è l'EFLa fase di migrazione aggiuntiva delle migrazioni richiedono una stringa di connessione del database?

ha una soluzione che considero meno manodopera intensiva a lungo termine. Come se crei una stringa di connessione con lo stesso nome

nel tuo contesto : Base ("dbname")

Nome della stringa di connessione e catalogo iniziale corrispondono al dbname che hai specificato e non è necessario immettere ogni volta il nome della stringa di connessione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top