Domanda

Durante lo sviluppo, mi piace l'idea di framework come Entity Framework 4.3 migrazioni (anche se ho bisogno che funzioni con script SQL anziché le classi di migrazione) mantenendo tutti i database degli sviluppatori aggiornati. Qualcuno fa un aggiornamento per ottenere l'ultima fonte, tentano di eseguire l'applicazione e ottenere un errore che devono aggiornare il proprio database all'ultima migrazione (o avere la migrazione automaticamente). I file di migrazione sono timestamped, quindi i dispositivi non devono preoccuparsi di denominare due file nella stessa o la sequenza che i file devono essere eseguiti in.

Quando mi preparo a creare un pacchetto di distribuzione di WebDeploy, voglio che il pacchetto contenga gli script necessari per spostare il database di produzione all'ultima versione DB. Quindi in qualche modo, msbuild o webseploy ha bisogno di prendere una decisione su quali script devono essere confezionati. Per la distribuzione non voglio che l'applicazione provi ad aggiornarlo come le offerte EF. Voglio annessi lanciare il pacchetto al reparto IT o eseguire una distribuzione automatica tramite un server di distribuzione.

Alcune delle mie domande sono:

    .
  1. può EF 4.3 Lavorare con script SQL invece di classi di dbmigrazione per le mie esigenze di sviluppo (lo sto già usando per il mio orm così sarebbe bello se potrebbe)?

  2. Msbuild o Webdeploy capisce il concetto di migrazioni del database (ad esempio Riconoscere l'EF. 4.3 Migrationhistory Table) o devo assicurarmi di dargli solo gli script che deve essere eseguito che porterà il mio prodotto DB all'ultima migrazione? Decidere manualmente quali script dovrebbero essere pagati non è qualcosa che voglio farlo è lì un'estensione di webseploy MS che comprende le migrazioni?

  3. Le mie preoccupazioni e idee sono valide? Sto solo cercando questa roba, quindi non lo so davvero.

È stato utile?

Soluzione

Penso che le tue preoccupazioni siano valide.Durante lo sviluppo tutto ciò che mantiene le macchine per gli sviluppatori in sincronizzazione farà.Quando si distribuisce, è necessario più controllo.

Nel mio progetto abbiamo deciso di utilizzare solo le migrazioni basate su codice, per garantire che tutti i database siano migrati nello stesso ordine con gli stessi passaggi.La migrazione automatica e la creazione DB sono disabilitate da una strategia di inizializzazione personalizzata che controlla solo che il DB esiste ed è valido.

Ho scritto di più sui dettagli in Impedisci alle migrazioni EF dalla creazione o alla modifica del database .Ho anche guardato un po 'a Unisci conflitti Alla fine accadrà con più sviluppatori.

Altri suggerimenti

    .
  1. È possibile eseguire SQL nelle classi chiamando il metodo SQL o generare SQL da una migrazione utilizzando il parametro -script con il comando di aggiornamento-database.

  2. no.Stavano cercando di aggiungere supporto per il webseploy ma apparentemente deciso contro di esso prima di RTM.Hanno tuttavia rilasciato un'app della riga di comando (e il PowerShell Script ovviamente) che puoi chiamare da entrambi.

    Quello che faccio nei miei progetti è creare un modulo di avvio nelle mie applicazioni ed eseguire qualsiasi migrazione che non è stata distribuita automaticamente - Triggering EF Migrazione all'Applicazione Avvio tramite codice .Non è perfetto, gli sviluppatori devono eseguire l'app dopo aver ottenuto l'ultima volta prima di cambiare il DB, ma funziona sia per ottenere l'ultima e la distribuzione.

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