Attention à l'utilisation du ssdt tool avec visual studio 2019

Récemment, pour un projet sur lequel je travaille dans mon environnement professionnel je fus confronté à un probléme avec l'utilisation des sqlproj que l'on peut utiliser avec Visual Studio. Pour rappels, ces derniers permettent de gérer la structure de vos bases de données et des jeux de données via les scripts Pre / Post déploiement. On obtient quelque chose comme ci-dessous en terme d'IHM :

Cela permet finalement assez facilement d'avoir la structure et données sous forme de code et de pouvoir associer les modifications de bases de données avec les modifications de code dans un même commit. Le suivi des modifications est clairement plus simple de la sorte. Les sqlproj permettent de générer des publications sous forme de script sql ou de générer un fichier dacpac. Ce sont les briques que vous pourrez alors intégrer dans vos flux CI/CD pour industrialiser vos développements, si ce n'est pas encore fait de votre côté, il serait temps de vous y mettre. Une fois qu'on y a gouté on ne peut plus s'en passer :D de ce concept d'industrialisation ;), on gagne tellement de temps et surtout de confort au quotidien.

Bref, pour revenir à mon sujet. Je me suis retrouvé en voulant lancer une publication depuis Visual Studio pour tester mes modifications à obtenir un truc incohérent. J'avais des contraintes définissant des valeurs par défaut sur des colonnes, toutefois lors de la plublication, j'avais une erreur sur l'ajout de ces même contraintes car lors du processus du déploiement elle existait déjà... En fait le script généré avait d'une part dans la création de la table la définition de ces contraintes... Mais il rajouter aprés des instructions alter pour rajouter encore ces même contraintes... 

En fait, en utilisant le déploiement en ligne de commande directement en utilisant l'outil sqlpackage, je me suis aperçut que les erreurs n'était pas les mêmes... Et ces derniéres étaient parfaitement justifiées. Donc méfier vous de l'outil de publication accessible via Visual Studio et n'hésitez pas à créer un fichier bat qui pilote le test de vos publication via dacpac pour vous éviter des surprises de ce genre.

Si ma démarche avec le bat vous intéresse, n'hésitez pas à me le faire savoir via les commentaires. Je mettrai alors à jour le billet ou en faire un supplémentaire pour expliquer ma démarche.


Rejoindre la conversation