2014-09-18 5 views
0

J'utilise DACPAC dans le cadre de mon déploiement de base de données. Le même paquet est déployé dans les environnements dev/staging/prod. Ce que nous aimerions pouvoir faire est de créer une base de données avec des données telles que les utilisateurs admin qui ont un ID utilisateur différent sur chaque environnement par exemple.Scripts sql environnement environnement

Ce serait génial si je pouvais placer une variable dans le profil de publication pour le DACPAC (ou autre), mais j'imagine que je pourrais également accomplir cela en regardant le @@servername. Y a-t-il une meilleure façon d'accomplir cela?

Répondre

2

Donc c'est super propre si vous utilisez SSDT dans Visual Studio.

Accédez aux propriétés du projet, onglet SQLCmd et entrez les variables.

enter image description here

ensuite les utiliser dans vos scripts.

enter image description here

Lors de la publication au sein de Visual Studio vous obtiendrez une interface agréable qui vous permet de spécifier des valeurs pour les variables ou charger les valeurs par défaut (si vous avez spécifié une).

enter image description here

Le profil de publication est juste un fichier XML au format d'un projet MSBuild, donc il n'y a rien de fou passe là-bas. Si vous déployez automatiquement, vous pouvez spécifier les valeurs par défaut des variables avec l'outil de déploiement dacpac que vous utilisez. J'utilise SqlPackage qui est en dehors de SSDT. Command Line Reference

Utilisation de Powershell:

& $sqlpackageexe /Action:Publish /SourceFile:$dacpac /Profile:$dacprofile /TargetConnectionString:$connstring /Variables:DbEnvironment=Development