2012-06-23 12 views
10

Sto cercando un modo per utilizzare la distribuzione Git su Windows Azure insieme a MySQL o altre soluzioni di database.Migrazione dello schema del database su Azure con Git Deployment

Ho bisogno di un mezzo per migrare le modifiche dello schema del database come parte della distribuzione - Azure fornisce supporto per questo senza utilizzare Visual Studio o .NET.

risposta

0

Non sono sicuro di quante esperienze avete con i siti Web di Windows Azure, tuttavia quando create un sito Web Windows Azure, è possibile utilizzare il database SQL Azure o il database cloud MySQL direttamente integrato con i siti Web Windows Azure.

Quindi, se si intende utilizzare database di SQL Azure poi ci sono diversi modi in cui è possibile eseguire la migrazione vostro DB seguendo il link qui:

Migrating Databases to Windows Azure SQL Database (formerly SQL Azure)

Per gestire MySQL è possibile utilizzare Local Web Server per farlo. Il modo in cui ho fatto è usare PHP, lo strumento Command-Line di MySQL (parte di MySQL), e un server web impostato sulla mia macchina locale, e che ho abilitato l'estensione PDO per MySQL. In questo modo posso gestire il mio MySQL direttamente dalla mia macchina locale e i dettagli sono spiegati in fondo a questo articolo:

Create a PHP-MySQL Windows Azure web site and deploy using Git.

Anche la parte SQL è possibile scrivere in Workbench se si utilizza MySQL e Oracle SQL Developer se si utilizza Oracle SQL.

Infine Git Deployment consente di distribuire qualsiasi tipo di applicazione direttamente su Windows Azure senza utilizzare VSx.

+1

Grazie, credo che attualmente sto facendo quello che hai menzionato su Azure. Quello che ora voglio fare è essere in grado di "versionare" il mio schema di database MySQL insieme a Git Deploys.Ad esempio, supponiamo che io disponga di una nuova versione del mio sito che include una nuova tabella e il PHP per gestirlo, come posso fare in modo che Azure aggiorni automaticamente lo schema del database sia per la nuova distribuzione, sia per invertire idealmente le modifiche se eseguo il rollback della distribuzione ? – James

+0

Potrebbe essere necessario farlo direttamente nel tuo codice come tramite PHPAdmin, git potrebbe non essere uno strumento per gestire direttamente le tue versioni di MySQL. Sicuro di poter scrivere script nel codice per aggiornare lo schema del DB dopo ogni aggiornamento Git non può farlo per te. – AvkashChauhan

4

In pratica si desidera utilizzare Azure come piattaforma di integrazione continua (CI) e la mia vista è che Azure di per sé non è ancora lì.

Uno scenario di base basato su git basato su git comporterebbe i seguenti passaggi.

  1. Il codice src e gli eventuali aggiornamenti dello schema/dati del database vengono trasferiti in un repository git centrale come GitHub. [Funzione disponibile]
  2. GitHub quindi invia gli aggiornamenti ad Azure. [Non supportato in Azure finché non supportano gli hook GitHub]
  3. Azure compila e distribuisce il codice. [Supportato]
  4. Azure aggiorna il database dai file sql estratti dal repository (ricordare, questo deve essere automatizzato). [Non supportato]
  5. Azure segnala qualsiasi errore nell'esecuzione del database o dell'applicazione Web. [Supportato]
  6. Azure esegue test di integrazione forniti dall'utente per controllare funzionalità più approfondite e riporta lo stato di tali test all'utente [Non supportato].
  7. Azure consente di eseguire il rollback a un'istantanea di distribuzione precedente [parzialmente supportato. Le istantanee non sono basate su commit git per esempio].

Potrei sbagliare su alcuni di questi punti o potrebbero essere aggiunte nuove funzionalità da quando ho scritto questo. Le correzioni sono molto benvenute e cercherò di aggiornare la lista di conseguenza.

+4

# 2 e # 7 dovrebbero ora essere supportati. Non sono sicuro che il # 4 (migrazione di uno schema tramite git deploy) sia supportato –

+3

# 4 è ora supportato. Ho creato una dimostrazione del concetto che utilizza il databaseInitilizer come spiegato nel post del blog [Prime migrazioni del codice EF in un servizio cloud di Azure] (http://blogs.msdn.com/b/webdev/archive/2014/04/09/ ef-code-prime-migrations-distribuzione-di-un-azzurro-cloud-service.aspx) – Towa

Problemi correlati