Condividi tramite


Procedura dettagliata: esecuzione dello sviluppo iterativo di database in un ambiente di sviluppo isolato

Aggiornamento: novembre 2007

In Procedura dettagliata: creazione di un ambiente di sviluppo isolato viene illustrato come un amministratore di database crea un progetto di database e importa le definizioni di schema e oggetto di database da un server di produzione. Nella seconda procedura dettagliata viene illustrato come creare unit test del database per verificare la funzionalità esistente e stabilire una linea di base pulita. In questa procedura dettagliata, la terza e ultima della serie, viene illustrato come eseguire una tipica attività di distribuzione iterativa, ovvero la ridenominazione di due colonne di database. Queste modifiche vengono apportate in un ambiente di sviluppo isolato per ridurre al minimo i rischi per gli altri membri del team, finché non si è pronti a condividere le modifiche.

Di seguito sono elencate le attività illustrate nella procedura dettagliata:

  • Come utilizzare il refactoring del database per ridenominare colonne, ridurre il tempo necessario per aggiornare tutti i riferimenti alle colonne e diminuire le probabilità di errore.

  • Come eseguire unit test del database per verificare che le modifiche non interferiscano con le funzionalità esistenti.

  • Come archiviare le modifiche nel controllo delle versioni per renderle disponibili agli altri membri del team.

Prerequisiti

È necessario avere installato Visual Studio Team System Database Edition e disporre dell'accesso al database di esempio AdventureWorks per Microsoft SQL Server 2005. In questa procedura dettagliata, inoltre, si presuppone che siano state completate le procedure dettagliate Procedura dettagliata: creazione di un ambiente di sviluppo isolato e Procedura dettagliata: creazione di una linea di base per l'ambiente di sviluppo isolato.

Rinominare colonne di database

Un'attività di sviluppo tipica prevede la ridenominazione di oggetti di database. In questa procedura dettagliata la colonna EmployeeID nella tabella [HumanResources].[Employee] viene rinominata EmployeeNumber. Alla colonna EmployeeID fanno riferimento varie chiavi esterne e stored procedure. Per apportare manualmente la modifica, è necessario modificare più file. Prima di apportare le modifiche, è necessario verificare di disporre della versione più recente del progetto di database.

Per ottenere la versione più recente del progetto di database

  1. In Team Explorer espandere il nodo Progetto Team che contiene il progetto di database.

  2. Aprire Esplora controllo del codice sorgente facendo doppio clic sul nodo Controllo codice sorgente.

  3. In Esplora controllo del codice sorgente fare clic con il pulsante destro del mouse sul progetto di database e scegliere Leggi ultima versione.

    Viene recuperata la versione più recente della soluzione che contiene il progetto di database.

Per rinominare EmployeeID in EmployeeNumber

  1. Se la soluzione AdvWorksSandbox è aperta in Esplora soluzioni, andare al passaggio 4.

  2. Scegliere Apri dal menu File e quindi Progetto/Soluzione.

    Verrà visualizzata la finestra di dialogo Apri progetto.

  3. Selezionare la soluzione AdvWorksSandbox e quindi scegliere Apri. Per impostazione predefinita, questa soluzione si trova in Documenti\Visual Studio 2005\Projects\AdvWorksSandbox.

    La soluzione AdvWorksSandbox verrà aperta in Esplora soluzioni.

  4. Scegliere Visualizzazione schema dal menu Visualizza.

  5. Nella finestra Visualizzazione schema espandere il nodo AdvWorksSandbox e quindi espandere la cartella Tables.

  6. Nella cartella Tables espandere la tabella HumanResources.Employee e quindi espandere la cartella Columns.

  7. Fare clic con il pulsante destro del mouse sulla cartella EmployeeID, scegliere Effettua refactoring e quindi Rinomina.

    Verrà visualizzata la finestra di dialogo Rinomina contenente il nome della colonna esistente.

  8. In Nuovo nome digitare EmployeeNumber.

  9. Se la casella di controllo Anteprima modifiche non è selezionata, selezionarla e scegliere OK.

    Verrà visualizzata la finestra di dialogo Anteprima modifiche - Rinomina contenente tutti gli elementi nel progetto che fanno riferimento alla colonna da rinominare.

  10. Fare clic su una delle modifiche.

    I relativi dettagli verranno visualizzati in Anteprima modifiche.

  11. Dopo avere esaminato le modifiche, scegliere Applica per applicarle.

    Tutti i file modificati verranno estratti dal controllo delle versioni.

È possibile visualizzare le modifiche in sospeso nella finestra Modifiche in sospeso, dove dovrebbero essere visualizzati i seguenti file:

  • AWGenPlan.dgen

  • Employee.table.sql

  • Employee.PK_Employee_EmployeeID.sql

  • vSalesPerson.view.sql

  • uspGetManagerEmployees.proc.sql

  • vEmployee.view.sql

  • vEmployeeDepartmentHistory.view.sql

  • uspUpdateEmployeePersonalInfo.proc.sql

  • uspUpdateEmployeeHireInfo.proc.sql

  • uspUpdateEmployeeLogin.proc.sql

  • PurchaseOrderHeader.FK_PurchaseOrderHeader_Employee_EmployeeID.fkey.sql

  • Employee.FK_Employee_Employee_ManagerID.fkey.sql

  • EmployeePayHistory.FK_EmployeePayHistory_Employee_EmployeeID.fkey.sql

  • EmployeeDepartmentHistory.FK_EmploymentDepartmentHistory_Employee_EmployeeID.fkey.sql

  • JobCandidate.FK_JobCandidate_Employee_EmployeeID.fkey.sql

  • EmployeeAddress.FK_EmployeeAddress_Employee_EmployeeID.fkey.sql

  • SalesPerson.FK_SalesPerson_Employee_EmployeeID.fkey.sql

  • Employee.uEmployee.trigger.sql

Eseguire unit test del database

Dopo avere apportato le modifiche desiderate e prima di archiviarle nel controllo delle versioni, è necessario eseguire unit test del database per verificare che l'applicazione funzioni correttamente, prima di condividere le modifiche con il team.

Per eseguire unit test del database per individuare potenziali problemi

  1. Scegliere Finestre dal menu Test e quindi Visualizzazione test.

    Nella finestra Visualizzazione test sono presenti numerosi test. Per impostazione predefinita, vengono creati i test denominati ManualTest1 e TestMethod1. I test denominati dbo_uspGetManagerEmployeesTest e dbo_ufpLeadingZeroTest sono quelli creati nella procedura dettagliata precedente.

  2. Selezionare le caselle di controllo per dbo_uspGetManagerEmployeesTest e dbo_ufpLeadingZeroTest, fare clic con il pulsante destro del mouse su entrambi e quindi scegliere Esegui selezione.

  3. I risultati verranno visualizzati nella finestra Risultati del test.

    Il progetto di database verrà distribuito nell'ambiente di sviluppo isolato, i dati di test verranno generati e i test verranno eseguiti e superati.

Confronto del progetto di database con la produzione

È possibile confrontare gli schemi del progetto di database aggiornato e il database di produzione per determinarne le differenze. Poiché viene eseguito un confronto degli schemi e non l'aggiornamento di uno dei due, è possibile utilizzare l'uno o l'altro, indifferentemente, come origine o come destinazione.

Per confrontare lo schema del progetto di database con il database di produzione

  1. Scegliere Confronto schema dal menu Dati e quindi Nuovo confronto schema.

    Verrà visualizzata la finestra di dialogo Nuovo confronto schema.

  2. Accettare i valori predefiniti per Schema di origine.

    Viene specificato il progetto di database, AdvWorksSandbox.

  3. In Schema di destinazione, nell'elenco Database, fare clic sulla connessione al database AdventureWorks da cui è stato originariamente importato lo schema di database e scegliere OK.

    Gli schemi vengono confrontati. Le uniche differenze dovrebbero essere le modifiche apportate durante questa procedura dettagliata.

  4. Esplorare le differenze tra gli schemi. Al termine, chiudere la finestra Confronto schema.

    È ora possibile condividere le modifiche con il team.

Archiviare le modifiche

Dopo avere verificato che tutte le modifiche sono pronte per essere condivise con altri membri del team, è possibile archiviarle nel controllo delle versioni. Le modifiche vengono archiviate nella soluzione, che in genere include il progetto di database, il progetto di unit test ed eventuali codice e unit test dell'applicazione associati.

Per archiviare le modifiche e renderle disponibili al team

  1. Scegliere Altre finestre dal menu Visualizza e quindi Modifiche in sospeso.

    Verrà visualizzata la finestra Modifiche in sospeso.

  2. In Commento digitare Colonna EmployeeID rinominata.

  3. Nella finestra Modifiche in sospeso scegliere Archivia sulla barra degli strumenti.

    Quando il progetto di database e i file che contiene vengono archiviati nel controllo delle versioni, viene visualizzata la finestra di dialogo Stato archiviazione. Le icone in Esplora soluzioni verranno aggiornate per indicare che i file sono archiviati nel controllo delle versioni.

Passaggi successivi

Questo processo iterativo viene eseguito più volte per ogni versione del database che il team distribuisce in produzione. Ogni sviluppatore apporta modifiche in ambiente isolato, le testa per verificare che siano corrette e quindi le condivide con il team, archiviando gli aggiornamenti nel controllo delle versioni. Il processo di distribuzione del database in produzione è semplice:

  1. Una versione dei file che costituisce il progetto di database e i relativi test presentano un'etichetta per indicare che sono parte di una versione in distribuzione.

  2. Si ottengono le origini con etichetta e viene generato uno script di generazione.

  3. Lo script di generazione viene esaminato e modificato secondo le esigenze, con una distribuzione di prova in un server temporaneo. Dopo ogni distribuzione, è possibile confrontare il progetto di database con lo schema sul server temporaneo.

  4. Al termine dell'iterazione dello script di generazione, finché non è pronto per passare alla produzione, lo script di generazione modificato viene distribuito in produzione.

  5. Se è necessario apportare modifiche non incluse nel progetto di database, è possibile importare tali aggiornamenti nel progetto di database dal server di produzione aggiornato.

Per ulteriori informazioni su Database Edition, eseguire le procedure più dettagliate per ogni area di funzionalità.

Vedere anche

Concetti

Panoramica sulla terminologia di Database Edition

Altre risorse

Refactoring di database

Esecuzione di unit test del database

Confronto di schemi di database