Ogni oggetto di database deve essere memorizzato in un file separato nel sistema di controllo versione. sistema di controllo versione potrebbe contenere file come in questo esempio:
|- tables
|- employees.sql
|- contracts.sql
|- packages
|- contract_api.sql
|- functions
|- get_employee_name.sql
...etc...
Ogni volta che si modifica un oggetto DB, allora si deve anche modificare il file (DDL) SQL appropriato nel sistema di controllo versione. Ad esempio, se si modifica il pacchetto contract_api, si aggiorna il file contract_api.sql. Poiché questo file è stato modificato, può essere installato, ad esempio, da un motore di integrazione continuo.
MA, come sai, ci sono script DDL, che non possono essere eseguiti due volte. Ad esempio, lo script 'CREATE TABLE mytable ...' può essere eseguito solo una volta. E se il tuo sistema è già in produzione, non puoi permetterti di utilizzare l'istruzione 'DROP TABLE mytable' nell'intestazione dello script 'CREATE TABLE ...'. Pertanto per i sistemi di produzione è necessario creare i cosiddetti script delta che forniranno solo le modifiche. In questo caso potresti semplicemente creare un nuovo file chiamato employees_upd01.sql che contiene l'istruzione 'ALTER TABLE mytable ADD COLUMN ...'.
Dopo qualche tempo il repository potrebbe essere la seguente:
|- tables
|- employees.sql
|- employees_upgr20091001.sql
|- employees_upgr20091004.sql
|- contracts.sql
|- packages
|- contract_api.sql
|- functions
|- get_employee_name.sql
...etc...
E questo è OK, perché: 1) quando è necessario consegnare modifiche incrementali di oggi a base di dati - si distribuiscono i file che sono stati modificati oggi 2) se è necessario distribuire un'installazione pulita del sistema - si eseguono tutti gli script in ordine, ad es. prima employees.sql, quindi employees_upgr20091001.sql, ecc
Come ogni oggetto DB è in un file separato nel sistema di controllo di versione, si ha un buon controllo su tutte le modifiche.
fonte
2009-10-01 11:21:56
Come si inserisce un DB in SC? –
Se si dà un'occhiata alla procedura guidata che ho citato, crea uno script con tutto ciò che contiene, compresi i dati. Questo include SP, ma abbiamo file separati per quelli per renderlo più gestibile. Usiamo TortoiseSVN per controllare quei file. Se guardi l'articolo di Jeff ci sono modi migliori ... –
Ti farei invitare un sacco di volte se potessi, incredibile per me quante persone non considerano le modifiche SQL come qualsiasi altro codice. – HLGEM