Esiste un buon modo per sviluppare team utilizzando diverse istanze MySQL?

4

Questa potrebbe essere una domanda noob ma un collega e io stiamo lavorando a un progetto. Alcuni dati sulla nostra situazione sono:

  • Controlliamo le versioni utilizzando un server git centralizzato all'interno del nostro ufficio.
  • Codifichiamo in PHP, quindi proviamo il nostro codice offline in un'istanza locale di apache.
  • Usiamo le istanze MySQL locali al lavoro.

Il nostro cliente è un po 'esigente e ha cambiato i requisiti più di due volte. Il problema principale è che se abbiamo bisogno di cambiare qualcosa nel database, dobbiamo fare i dump puliti su altri server (il computer dell'altro compagno di squadra, il server centrale ... e ovviamente il server del client) per far funzionare altre istanze, anche.

La mia domanda è, c'è un modo per sincronizzare i nostri database locali (non mi interessa quello del cliente in questo momento) con git o un'altra utility per creare il mio collega, il server git e il mio database sono aggiornati quando si apportano modifiche? Se ciò non è possibile, si conosce un modo migliore per lavorare con i database MySQL archiviati localmente? Grazie in anticipo.

PS: l'utilizzo di un solo database centrale non è una soluzione valida per noi, poiché testiamo diverse funzionalità e abbiamo elementi diversi ivi memorizzati.

    
posta Korcholis 17.06.2011 - 19:04
fonte

2 risposte

5

La prima cosa che dovresti sempre fare su qualsiasi progetto è automatizzare i processi di compilazione, distribuzione e rilascio.

Questo significa nel tuo caso:

  1. Automatizza la configurazione del database da una lavagna pulita con il nuovo DDL.
  2. Automatizza il caricamento di qualsiasi dato predefinito in questo DDL nuovo stato
  3. Automatizza il dumping di tutti i dati in modo che possano essere reimportati in un unico passaggio.
  4. Automatizza l'aggiornamento di uno schema esistente con il nuovo DDL.
  5. Automatizza la migrazione dei dati dal vecchio schema a quello nuovo, se necessario.

Rendi tutto questo disponibile come obiettivo dai tuoi script di compilazione automatici, in modo da poter creare in un'unica riga di comando, il codice, configurare il database.

Rendi automatica l'installazione del tuo codice, i pacchetti RPM o Debian sono indispensabili per Linux. Utilizza gli script di cui sopra per gli scenari di aggiornamento dai tuoi gestori di pacchetti.

Questi possono essere fatti con qualsiasi cosa che vada da% script dibash, a qualcosa come Maven con i suoi plugin, in ogni caso dovrebbe non fare affidamento su strumenti GUI specifici della piattaforma se possibile. Questo è un dominio problematico estremamente comune e ci sono ottime soluzioni in quasi tutte le lingue possibili che dovresti essere in grado di sfruttare in modo specifico per il tuo ambiente.

Se non lo vedi, il tema ricorrente è automazione . Solo una persona della tua squadra dovrebbe essere obbligata a svolgere le mansioni una volta sola, e tutti gli altri possono beneficiare del loro lavoro. L'automazione è un moltiplicatore di forza . Più piccola è la squadra, maggiore è il rapporto tra il tempo moltiplicatore.

    
risposta data 17.06.2011 - 19:10
fonte
2

C'era una domanda su questo in l'altro posto , in risposta al quale ho scritto un lungo massetto. Potresti divertirti a leggere quel thread.

In breve, la mia risposta è che è necessario (a) un processo per eliminare e ricostruire velocemente un database da zero, (b) un insieme di file di dati da inserire in questo processo, che si mantiene sotto il controllo del codice sorgente e ( c) un processo di lavoro che prevede la ricostruzione del database ogni volta che si apportano modifiche a tali file.

Questo è ciò che fa la mia azienda, e finché puoi mantenere il processo di ricostruzione veloce, funziona molto bene.

    
risposta data 17.06.2011 - 19:14
fonte

Leggi altre domande sui tag