2011-01-21 11 views
11

C'è un modo in cui posso utilizzare git per esportare/scaricare il mio database di sviluppo MySQL che viene utilizzato nel mio codice su un commit o in qualche altro modo tramite git in modo che ogni volta che clonato il mio progetto, ho sempre una copia corrente del database ?Git: Esporta database MySQL su commit?

In caso contrario, posso sempre esportare il database e aggiungerlo alla fonte, mi stavo chiedendo se git avesse la capacità di farlo quasi come un gancio.

+0

In realtà stai dicendo che vuoi copiare l'intero database dopo * ogni * commit? – GolezTrol

+1

Questa sarebbe una copia di sicurezza di una risposta, ma puoi conoscere i git git nell'eccellente libro Pro Git disponibile gratuitamente online. Ecco il link direttamente a quel capitolo: http://progit.org/book/ch7-3.html – coreyward

+2

Forse non eseguire il commit, ma dopo ogni push (qualcosa che faccio solo quando ho finito con un ramo di rilascio). Immagino che githooks (http://www.kernel.org/pub/software/scm/git/docs/githooks.html) sia la mia migliore scommessa? – drewrockshard

risposta

16

Ho finito per utilizzare i git git come previsto. Ho creato il gancio pre-commit e ho aggiunto il seguente:

#!/bin/bash 
DBUSER="sysbackup" 
DBPASS="password" 
DB="database-name" 
SCHEMAPATH="DBSchema" 

mysqldump -u $DBUSER -p$DBPASS $DB > $SCHEMAPATH/$DB.sql 
git add $SCHEMAPATH/$DB.sql 
exit 0
+0

Grazie per questa soluzione. A cosa serve 'exit 0'? AFAIK, quando finisce lo script, esce con lo stato 0, vero? – leemes

+0

Indica alla shell che lo script MY sta uscendo con un valore pari a 0. – drewrockshard

+0

Sì, ma non tutti gli script restituiscono un codice di uscita di 0 quando non c'è un'istruzione 'exit'? Cosa intendo: AFAIK non è necessario chiamare esplicitamente 'exit 0' alla fine di qualsiasi script. – leemes