Il modo migliore per gestire più script sql specifici per l'ambiente nel controllo del codice sorgente

1

Sto mantenendo un'app che utilizza un sacco di server sql 2008r2 stored proc, viste ecc.

Il problema che ho è che alcune stored procedure / viste hanno codice specifico per l'ambiente: produzione, test o sviluppo. Ecco come ho ereditato il sistema. Le differenze derivano dal modo in cui i server collegati sono stati definiti.

Quale sarebbe il modo migliore per gestire più versioni dello stesso script?

Diciamo che ho uno script che contiene una vista denominata ViewName1.sql e questa vista è diversa nei test che nella produzione. Ecco alcune opzioni:

  1. Aggiungi il nome dell'ambiente al nome del file: ViewName1.prod.sql, ViewName1.dev.sql, ViewName1.test.sql e posiziona tutti gli script nella stessa cartella.

  2. Inserisci il codice in cartelle diverse per ogni ambiente. Quindi avrei qualcosa di simile:

    • Dev
      • Visualizzazioni
        • VewName1.sql
        • ....
      • Procedure memorizzate
      • ....
    • Produzione
      • Visualizzazioni
        • ViewName1.sql
        • ....
      • Procedure memorizzate.

In questo caso potrei inserire Dev e Test solo gli script che sono diversi, cioè solo gli script specifici per l'ambiente, non tutto. Il codice di produzione sarebbe comunque la fonte della verità per il resto del codice.

Mi piace un po 'l'opzione 1 perché tutti i file che devo modificare si trovano nello stesso posto.

Qualche altra idea?

Grazie!

    
posta costa 22.06.2016 - 00:59
fonte

0 risposte