dbdeploy (phing) e team di sviluppo

1

Qualcuno qui usa dbdeploy ( phing ) in un comando?

Se sì - come gestisci le migrazioni?

Supponiamo di avere 2 diverse funzionalità sviluppate in diversi rami del repository mercurial (il file di sviluppo di phing e le migrazioni di dbdeploy sono archiviate in mercurial). Quali ID assegnare a ogni funzione cambia?

    
posta zerkms 19.09.2011 - 07:25
fonte

1 risposta

3

Stiamo usando ant + dbdeploy, in passato avevamo utilizzato phing + dbdeploy.

Sfortunatamente non esiste un modo automatico per gestire questo tipo di modifiche, quindi abbiamo dovuto trovare un accordo. I nostri rami sono temporanei, quando la funzionalità / bug viene risolta, di solito vengono rimossi dopo la fusione delle modifiche nel ramo principale. Poche regole di base:

1. Make sure everyone knows you will be or you already have changed database structure and/or data

This way conflicts are prevented. If Alice on changing something Bob already changed in a different branch, Alice can either use Bob's delta or make sure your change will not affect it.

2. Only one person is allowed to merge changes into master branch

When Charlie is merging branches into master, Alice and Bob help him resolve any DB delta issue. For example, Alice created 123_create_table_user.sql and Bob 123_alter_table_message.sql. Depending on the changes, there are two possible outcomes, 123_create_table_user.sql and 124_alter_table_message.sql or 123_alter_table_message.sql and 124_create_table_user.sql.

3. You are the owner of your local database

In above case, both Alice and Bob need to make sure their dbdeploy's changelog is in sync. If there are any problems when running dbdeploy because the values in the table are different than the delta scripts, it's Alice's and/or Bob's fault.

Ciò che abbiamo visto finora, le modifiche al database più frequenti sono fatte all'inizio del progetto, quando tutto è fatto su un ramo. In seguito, anche con 5 o più sviluppatori che lavorano ciascuno nelle proprie filiali, raramente si verificano conflitti tra database.

    
risposta data 19.09.2011 - 09:39
fonte

Leggi altre domande sui tag