web-dev-qa-db-fra.com

SSIS 2012 métadonnées non rafraîchissantes sur réappliquer

J'ai trois systèmes: dev, UAT, Prod, toutes les entreprises d'exécution SQL 2012. J'ai des forfaits existants qui frappent des objets sur ces systèmes. Chaque fois que je dois faire une modification qui affecte les métadonnées, il ne suffit pas que je mettais à jour les objets sur le système cible, puis mettez à jour le package SSIS qui pointe sur le système, puis redistribuez le package sur le système. Même si le colis aura été mis à jour avant de réappliquer pour gérer les nouvelles métadonnées, je dois encore accéder à chaque système et mettre à jour le colis avant de ne pas reconnaître les nouvelles métadonnées.

Ce comportement est nouveau pour moi. Dans les offres 2008, une rafraîchissement des métadonnées sur un système persisterait à tout système qu'il a été déployé. Maintenant, si je modifie le gestionnaire de connexion avant de le déployer, je dois revenir en arrière et réactualiser l'actualisation des métadonnées avant que je puisse l'envoyer. Il semble que les métadonnées par réglage de connexion soient conservées et ne sont pas mises à jour lorsque le package est mis à jour.

Un exemple pour que je puisse faire cela clair: j'ajoute une colonne à une table de destination sur les trois systèmes. Je mettez à jour le paquet pendant qu'il pointe vers Dev pour refléter le changement, puis déployer. Jusqu'ici tout va bien. Ensuite, je mettez à jour le gestionnaire de connexion pour pointer vers UAT et déployer le package modifié là-bas. À ce stade, je m'attendrais à ce qu'il n'y aurait pas de rafraîchissement requis des métadonnées, car le schéma de la table de destination dans UAT correspond à celui de Dev, à laquelle le colis a été signalé quand il était actuellement rafraîchi. Toutefois, le forfait agit comme s'il n'était pas mis à jour et que ses métadonnées sont rafraîchies tout en indiquant explicitement ce système afin de travailler.

Pour essayer de résoudre ce problème, j'ai ajouté une expression pour la propriété ServerName sur le gestionnaire de connexion à déterminer par System :: Machinename, pensant que le problème était que la modification du gestionnaire de connexion sur la machine que je développe immédiatement déclenché un chèque. des objets là-bas, même avec une validation de retard allumé. Pas de bonne chance; Il montre toujours le même comportement.

Je ne trouve pas beaucoup d'informations à ce sujet en ligne, pour déterminer s'il s'agit du comportement attendu avec SSDT 2012 ou quelque chose que je fais mal ou un bon bug.

Quelqu'un a-t-il un aperçu de cette question?

5
Valkyrie

Honnêtement, vous ne devriez pas éditer le colis pour pointer vers un autre environnement avant de le déployer. Veuillez regarder dans Configurations de packages Pour en savoir plus sur les méthodes pour déployer vos packages sans modifier le colis lui-même.

Probablement vos chaînes de connexion et d'autres paramètres devraient simplement être une variable lue à partir d'un fichier de configuration.

Puisque vous utilisez SQL 2012, vous devez probablement utiliser environnements (merci@martinsmith)

J'ai eu un problème similaire auparavant avec ma boîte de production SQL Server 2012 Edition Enterprise Edition. Même si je vous assurerais que tout était rafraîchi sous des packages SSIS avant de déployer dans la boîte de production, lorsqu'il est exécuté sur la boîte de production, cela ne fonctionnerait pas, disant que l'objet n'existe pas. J'ai également eu toute la validation allumée, mais cela n'a pas aidé.

Donc, pour l'essayer, j'ai laissé tomber tout le projet de la boîte de production (nous utilisons SVN pour nos changements afin que je puisse le revenir à cette révision) et déployé à nouveau le projet. Depuis que je faisais cela, chaque fois que SSIS est mis à jour, cela fonctionne à chaque fois et regarde correctement les changements.

Je pense qu'il pourrait y avoir un bug ou quelque chose à l'intérieur de la SSISDB, ce qui a provoqué des métadonnées ou des métadonnées internes pour le projet lui-même ne se rafraîchissez pas, mais la suppression et la rédugeance ont fonctionné pour moi, espérons-le que cela fonctionnera pour vous.

3
NismoGTR05

Ouvrez le package dans les outils de données Ouvrez le flux de données, ouvrez tous les commandes ASYNC et cliquez sur OK et fermez le package.

Ré-construire une solution et déployer

0
Viral Kothari