4

Existe-t-il une méthode/un mécanisme disponible pour exécuter un ensemble différent de scripts de post-déploiement dans le projet de base de données SSDT dans Visual Studio 2012/2013? basé sur la configuration de construction? Je voudrais pré-remplir mes données pour tester/intégration continue en déployant avec une configuration "Testing", mais naturellement je ne veux pas le faire pour d'autres environnements. Cependant, je n'arrive pas à trouver un moyen de lier conditionnellement un script de post-déploiement à une configuration de construction, et cela me semble vraiment étrange.VS 2013 Database Project: Exécution de scripts post-déploiement basés sur la configuration de construction

Répondre

3

Vous pouvez également utiliser des variables SQLCMD pour faire quelque chose de similaire. Si la valeur == "Test", exécutez un ensemble de valeurs. Sinon, lancez autre chose. Je blogué à ce sujet ici:

http://schottsql.blogspot.com/2013/05/trick-to-not-run-prepost-sql-on-publish.html

Il ne se fait pas sur la construction et les scripts sont toujours inclus cette façon, mais si ce n'est pas un problème, il vous donne un moyen d'écrire facilement le code pour fonctionner sur différents environnements facilement.

+0

Hmm ... comment définir la valeur SQLCMD comme étant la configuration de construction? J'ai essayé d'utiliser '$ (Configuration)' mais il a simplement analysé cette valeur et stocké "Debug". –

+0

Nous créons des profils de publication pour faire tout cela. Nous construisons ensuite en utilisant ce profil de publication. Je sais qu'il y a une option pour passer les valeurs de SQLCMD, mais je ne suis pas sûr de ce que c'est. Nous construisons plus souvent d'abord, puis publions w/SQLPackage pour définir des valeurs. –

+0

Je vois! Je vous remercie. –

7

Vous pouvez le faire en éditant le fichier .sqlproj utilisé par MSBuild. Ensuite, lorsque vous construisez la configuration "Test", vous obtenez différents contenus dacpac lors de la construction en mode "Release". Par exemple:

  • Créer un projet et ajouter un script Postdéploiement
  • Décharger le projet et modifier le fichier .sqlproj
  • Modifier le ItemGroup contenant le script PostDeploy pour se présenter comme suit:

<ItemGroup Condition=" '$(Configuration)' == 'Release' "> <PostDeploy Include="Debug.PostDeployment1.sql" /> </ItemGroup>

  • Construire dans la configuration de débogage et décompresser le dacpac: pas fil postdeploy.sql e sera inclus
  • Construire en test de configuration et décompresser le dacpac: le fichier postdeploy.sql sera là.
+0

blech, c'est moche ... mais on dirait que ça va marcher. –

Questions connexes