Utilizzo degli strumenti di migrazione DB all'interno di una macchina virtuale con Vagrant

0

Sto configurando Vagrant con più sviluppatori che utilizzano ScotchBox (v2.5) sul nostro posto di lavoro, ho avuto il funzionamento iniziale di vagrantfile, ma non sono sicuro del modo migliore per gestire le migrazioni del database.

Abbiamo essenzialmente due siti: -

  1. Sito di frontend (AngularJS 1.x)
  2. Sito di backend (Zend 1.x - PHP / MySQL)

I colleghi occasionalmente modificano il database (aggiungi / rimuovi colonne ecc.) Ho usato strumenti di migrazione con Yii & Laravel in passato, ma quegli strumenti non sono disponibili perché sto usando il vecchio Zend Framework.

In breve, sto cercando una soluzione che consenta a tutti i miei colleghi di essere in grado di fare quanto segue:

  • Utilizzare una qualche forma di strumento di migrazione del database (che supporta MySQL) per aggiungere / modificare / rimuovere tabelle e colonne
  • Spingi queste "migrazioni" in un repository git a cui tutti possiamo accedere
  • Ogni sviluppatore può quindi eseguire un "git pull" su quel repository e recuperare eventuali migrazioni rilevate
  • Eseguono un singolo comando tramite il terminale SSH e questo aggiorna la struttura del DB all'interno della casella Vagrant

Qualcuno può confermare se ciò è possibile all'interno di una macchina virtuale, e in tal caso qual è il modo migliore per farlo?

    
posta Zabs 13.09.2016 - 14:56
fonte

1 risposta

1

Sì, puoi. Quando esegui il provisioning della tua confezione includi semplicemente la "distribuzione" del tuo software sulla casella vagrante come parte di tale provisioning . Con questa configurazione quando si estraggono le modifiche dal controllo del codice sorgente è possibile ri-predisporre la casella e verranno eseguiti i nuovi script che sono stati estratti dal controllo del codice sorgente. Considero l'impostazione del progetto parte del provisioning perché 'vagare su' in un nuovo checkout da sorgente dovrebbe essere l'unico passaggio necessario per rilasciare una versione funzionante dell'applicazione sul computer di uno sviluppatore.

Sto facendo qualcosa di simile nei miei progetti che si basano su Doctrine Migrations Bundle per Symfony per fare ciò. Ovviamente YMMV per il tuo caso specifico (specialmente con ScotchBox questo potrebbe non essere facile come 'solo fornire la tua applicazione') ma può essere fatto.

    
risposta data 13.09.2016 - 15:48
fonte

Leggi altre domande sui tag