Condividi tramite


Compilazione e distribuzione di database in un ambiente di produzione o gestione temporanea

Gli sviluppatori di database svolgono singole attività di sviluppo e ognuno lavora in un ambiente di sviluppo isolato separato (spesso definito sandbox). Il processo di distribuzione di una versione testata di un progetto di database in un ambiente di produzione o gestione temporanea è simile, ma con alcune differenze fondamentali.

In generale, l'accesso a server di produzione e gestione temporanea presenta restrizioni. I server potrebbero contenere altri database da conservare. Spesso, il database di destinazione esiste già e potrebbe contenere dati anch'essi da conservare. È meno probabile avere la necessità di modificare le impostazioni server quando si distribuisce un database che non quando si esegue la distribuzione in un ambiente di sviluppo. In alcuni casi, anche se si dispone dell'autorizzazione per distribuire un database, si potrebbe non essere autorizzati ad aggiornare le impostazioni server.

Configurazione del progetto di database per la distribuzione in un ambiente di produzione o gestione temporanea

Nelle proprietà di distribuzione del progetto di database, è possibile configurare le relative impostazioni in base agli ambienti dei server di produzione e gestione temporanea. Queste impostazioni sono separate dalle impostazioni degli altri sviluppatori per i loro ambienti di sviluppo isolato. Mantenendo questa separazione, è possibile impostare le configurazioni del progetto per gli ambienti di produzione e gestione temporanea che gli altri sviluppatori non possono modificare. Ogni configurazione dispone di una connessione di database di destinazione a un server di produzione o gestione temporanea, nonché di file sqldeployment e sqlcmdvars specifici.

È inoltre possibile configurare le impostazioni di produzione e gestione temporanea per preparare lo script di distribuzione, ma non procedere realmente alla distribuzione vera e propria. Adottando questa strategia, è possibile rivedere lo script di distribuzione, apportare eventuali modifiche e distribuirlo manualmente nell'ambiente di destinazione.

Dettagli relativi alla configurazione della distribuzione

Prima di distribuire il progetto in un ambiente di produzione o gestione temporanea, considerare i problemi seguenti:

  • Probabilmente si rende necessario utilizzare le regole di confronto del database di destinazione perché l'ambiente di produzione o gestione temporanea è già stato configurato.

  • Non si desidera ricreare il database ogni volta perché si causerebbe perdita di dati.

  • Potrebbe essere necessario distribuire le proprietà del database se si sta distribuendo un nuovo database. Se si distribuiscono aggiornamenti a un database esistente, probabilmente non si desidera distribuire le proprietà del database perché dovrebbero già essere impostate correttamente.

  • Probabilmente si desidera eseguire il backup del database nel corso del processo di distribuzione, a meno che il backup degli oggetti e dei dati non sia già stato eseguito come passaggio separato dal processo di distribuzione.

  • È possibile bloccare la distribuzione in caso di perdita di dati perché è in corso l'aggiornamento di un database che spesso contiene dati di produzione.

  • È possibile generare istruzioni DROP per oggetti contenuti nel database, ma non nel progetto di database. Il progetto di database dovrebbe rappresentare la versione corretta degli schemi di produzione e gestione temporanea. Potrebbe verificarsi un'eccezione qualora sia necessario spostare manualmente i dati dopo avere distribuito aggiornamenti nel database. In questo caso, eliminare gli oggetti solo dopo avere eseguito la migrazione dei dati.

Variabili di comando di SQL

Quando si distribuisce in un ambiente di produzione o gestione temporanea, le variabili devono presentare valori appropriati per quell'ambiente. L'ambiente di produzione o gestione temporanea potrebbe, ad esempio, richiedere valori per Service Broker o certificati di servizio diversi dai valori dell'ambiente di sviluppo. Specificando un file sqlcmdvars diverso per ogni ambiente di destinazione, si evita di dover modificare i valori di quelle variabili quando si modificano le destinazioni della distribuzione. Allo stesso modo, decade la necessità di dover definire il file sqlcmdvars in termini di variabili MSBuild per disporre di valori specifici della configurazione. Può essere presente un file sqlcmdvars diverso per ogni configurazione che si desidera distribuire.

Distribuzione di progetti server

Un progetto di database può contenere definizioni per oggetti di database, oggetti server e così via. Nella maggior parte degli ambienti gli sviluppatori possono modificare oggetti di database, ma solo l'amministratore di database può modificare gli oggetti server. È possibile applicare questa restrizione inserendo oggetti server in un progetto separato (noto come progetto server). È quindi possibile limitare il controllo della versione in modo che solo gli amministratori possano modificare il progetto server. In un ambiente di produzione o gestione temporanea il progetto server e i relativi oggetti verranno molto spesso distribuiti separatamente dal progetto che contiene gli oggetti di database.

Un progetto server viene distribuito seguendo le stesse procedure utilizzate per distribuire un progetto schema.

Distribuzione dei ruoli

È necessario distribuire i ruoli utilizzati nel database a tutti i server in cui si distribuisce il database. Quando si distribuisce un database in un server di produzione o gestione temporanea, è necessario definire tutti gli utenti richiesti e associarli ai ruoli appropriati.

Distribuzione dalla riga di comando

È possibile distribuire un progetto di database a un prompt dei comandi in un computer in cui Visual Studio Premium non è installato se si installano i prerequisiti seguenti:

  • Microsoft .NET Framework versione 3.5 Service Pack 1

  • SQL Server Management Objects (SMO)

    Questi oggetti devono essere installati nei computer in cui è installato SQL Server.

Oltre a questi prerequisiti, è necessario trasferire in quel computer i file seguenti, copiandoli su un'unità USB (Universal Serial Bus):

  • Output di compilazione del progetto di database (debug o versione finale)

  • Contenuto della cartella Deploy per Visual Studio Premium

    Questa cartella si trova in genere in [Programmi]\VSTSDB\Deploy.

  • Assembly per SQL Server Compact Edition

Dopo avere installato i prerequisiti e avere trasferito i file, è possibile distribuire il progetto di database (nel formato del file dbschema) in un database di destinazione.

Attività comuni

Nella tabella seguente è possibile trovare descrizioni di attività comuni che supportano questo scenario e collegamenti a ulteriori informazioni sull'esecuzione corretta di queste attività.

Attività

Argomenti correlati

Apprendimento delle attività di compilazione e distribuzione: prima di configurare, compilare e distribuire il primo progetto di database, è necessario comprendere come utilizzare i progetti di database in un ambiente team. È inoltre possibile assimilare ulteriori nozioni sul processo di compilazione e distribuzione. È inoltre possibile imparare tutte le proprietà e le impostazioni che controllano la compilazione e la distribuzione del progetto.

Distribuzione dei soli oggetti completati: è possibile escludere file che contengono le definizioni per gli oggetti di database non ancora pronti per la distribuzione o i test.

Configurazione del progetto di database per il processo di compilazione: è possibile configurare le impostazioni che controllano la compilazione del progetto di database. È ad esempio possibile specificare il percorso di output.

Configurazione del progetto di database per la distribuzione:

  • È possibile configurare la distribuzione per qualsiasi configurazione di compilazione associando una configurazione a un database di destinazione, a un file contenente dettagli sulla distribuzione e a un altro contenente variabili aventi un impatto sulla distribuzione.

  • È possibile controllare i dettagli della distribuzione modificando il file che contiene i relativi dettagli.

  • È possibile personalizzare le variabili per utilizzare Service Broker o certificati di servizio diversi in ogni distribuzione.

  • È possibile impostare l'aggiornamento delle proprietà database quando si distribuisce il database e i valori che tali proprietà devono avere.

Popolamento delle tabelle di ricerca o riferimento: è possibile aggiungere dati di riferimento alle tabelle quando si distribuisce il progetto di database. È possibile eseguire questa operazione per le tabelle che contengono dati che cambiano raramente, ad esempio le informazioni sugli spedizionieri.

Compilazione del progetto di database: è possibile compilare il progetto di database in Visual Studio o a un prompt dei comandi con MSBuild per prepararsi alla distribuzione.

Distribuzione del progetto di database: è possibile distribuire il progetto di database in Visual Studio, tramite MSBuild come parte di un esecuzione di unit test del database oppure utilizzando VSDBCMD al prompt dei comandi per aggiornare il server o il database di destinazione.

Inoltre, è anche possibile eseguire la distribuzione tramite Team Foundation Build se si definisce un flusso di lavoro personalizzato.

Risoluzione dei problemi: è possibile ottenere ulteriori informazioni sulla risoluzione dei problemi più comuni relativi alla compilazione e alla distribuzione di un progetto di database.

Scenari correlati

Vedere anche

Concetti

Scrittura e modifica del codice del database

Creazione e modifica di oggetti server e di database