Condividere snippet folder con SQL Prompt al team

Il plugin Red-Gate SQL Prompt per SQL Server Management Studio offre, tra le altre cose, un set di shortcut per creare comandi al volo. La funzionalità, più nota come snippet manager, non solo consente di associare ad una semplice sequenza di caratteri un comando o un template anche complesso, bensì permette anche la personalizzazione dei collegamenti stessi.

Un esempio è quello che segue:
Per maggiori informazioni sul prodotto leggere qui.
Con l’installazione del componente aggiuntivo è già disponibile un set di snippet ma è possibile crearne di nuovi o modificare quelli esistenti. Ogni snippet è salvato su di un file con estensione proprietaria .sqlpromptsnippet e viene salvato sulla folder%USERPROFILE%\AppData\Local\Red Gate\SQL Prompt 5\Snippets
In ottica di lavoro in team, può risultare molto comodo condividere gli snippet con i nostri collaboratori. Non tanto quelli di default ma quelli che vengono aggiunti al set. Immaginiamo infatti quelli fortemente dedicati al database su cui si sta lavorando, come la creazione di una particolare parametrizzazione di un utente/ruolo oppure il set di opzioni per gli indici e via discorrendo. In quel caso possiamo creare i nostri snippet tramite il manager come segue:
Premendo Save, l’entry verrà aggiunta alla lista degli snippet preesistenti.
In questo caso, come è possibile distribuire a tutti gli item che devono essere condivisi? Personalmente ho deciso di seguire la seguente strada:
– utilizzo di dropbox
– copia del contenuto della cartella
– spostamento del puntatore alla folder per il plugin
Per fare tutto ho utilizzato powershell.

1) Dropbox folder
Dopo aver installato dropbox, creare una cartella che verrà condivisa e che conterrà gli snippet. Nell’esempio la chiameremo “Snippets”. Condividere con i collaboratori.
2) powershwll script
Dopo che la cartella è stat creata (e condivisa), ho eseguito uno script powershell (che è tranquillamente eseguibile anche sui pc dei collaboratori).
Lo script è il seguente:

#specify the sql prompt folder (registry)

$SQLpromptFolder = “SQL Prompt 5”

 

#copies the snippet files into the dropboxfolder

$localAppDataSnippets = $env:LOCALAPPDATA + “\Red Gate\” + $SQLpromptFolder + “\Snippets\*.sqlpromptsnippet”

$newSnippetFolder = $env:USERPROFILE + “\Dropbox\Snippets”

Write-Host “Copying *.sqlpromptsnippet files from “ + $localAppDataSnippets + ” to “ + $newSnippetFolder + “..”

Copy-Item $localAppDataSnippets $newSnippetFolder


#registry property

$SQLpromptRegistryFolder = “HKCU:\Software\Red Gate\” + $SQLpromptFolder

Set-Location $SQLpromptRegistryFolder

 

Set-ItemProperty . “Snippets Folder” $newSnippetFolder

Write-Host “Restart SQL Server Management Studio to apply..” 

Quello che fa è semplicemente:
– copia il contenuto della cartella di default di SQL Prompt sulla nuova creata su dropbox
– aggiunge un valore nel registro direttamente nella cartella che anche la documentazione di Red-Gate indica.
In questo modo, condividendo la folder e lanciando lo script sulle macchine di ogni dev del team, la folder impostata sul SQL Prompt è quella comune. Ogni aggiunta fatta viene recepita dai dev che lavorano in quel team e gli eventuali startup snippet vengono sempre allineati.
NB: questo script lavora solo sulla versione indicata nella variabile $SQLpromptFolder
E’ sufficiente cambiare quel valore per puntare alle precedenti/successive release del prodotto, anche se consiglio di dare un’occhiata alla documentazione per capire se la feature è supportata.
Stay Tuned! 

Comments are closed.