0

J'ai une base de données créée par un outil tiers. Le schéma est mis à jour régulièrement, j'ai donc besoin d'envoyer des mises à jour à mon environnement de production. Nous développons des vues au-dessus de cette base de données. Pour ces vues, j'utilise un projet de base de données. Dans ce projet, je fais référence à un DACPAC que j'ai créé à partir de la base de données tierce.Combinaison d'un projet dacpac et d'un projet SQL Server pour mettre à jour une base de données cible

Lorsque je vais déployer la solution complète, je souhaite déployer un seul DACPAC ou un script de mise à niveau généré automatiquement. Est-il possible de combiner ces deux schémas en amont pour faciliter le déploiement en production? Jusqu'ici j'ai essayé de référencer le DACPAC de la base de données de tiers dans mon projet de base de données, mais quand je construis ma solution j'obtiens deux dossiers de DACPAC. Le déploiement du premier DACPAC dans mon environnement de production entraîne la suppression des vues et des procédures stockées qui ne figurent pas dans ce premier package. La désactivation des suppressions pendant le déploiement du package rend impossible la suppression d'objets de ma solution, sauf si j'écris des scripts spécifiques pour ces suppressions, ce que je préférerais ne pas faire.

Et lorsque le second paquet est déployé, j'ai le même problème.

J'ai essayé d'exécuter une comparaison de schéma entre mon projet local et le DACPAC créé à partir de la base de données tierce. Il en résulte un script pour ajouter mes vues et procédures stockées au schéma cible, mais pas un seul package intégré que je peux comparer à mon environnement de production actuel pour la mise à niveau.

Répondre

0

Vous devez spécifier quelle option IncludeCompositeObjects = True et le dacpac référencé sera également déployé. La seule chose à savoir est que les scripts pré/post-déploiement (le cas échéant) dans le dacpac référencé sont ignorés, vous devez donc les copier dans votre dacapac principal.

Ed