2

espérons que tout le monde ici est OK.Génération de scripts SQL incrémentielle automatique pour les générations incrémentielles et nocturnes lors de l'utilisation de Team Build dans TFS 2008 et Visual Studio 2008?

Nous utilisons VS 2008 comme outil de développement, TFS 2008 le contrôle de version, ainsi que la construction d'automatisation. Certains de nos développeurs utilisent dbpro pour les changements de bases de données et certains utilisent SQL Server Management Studio. J'essaye d'automatiser la construction pour l'application Web construite utilisant C# et VB.Net. Notre scénario est tel que nous avons une base de données centrale à laquelle notre application web se connecte.

Chaque fois que nous fournissons à nos clients une nouvelle fonctionnalité ou une correction de bogue, nous leur fournissons des versions incrémentielles.

Le script SQL est vérifié dans le contrôle source pour chaque génération incrémentielle quand ils ont fait et testé il change sur notre serveur central de DB.

Je veux générer le script différentiel qui peut être exécuté au client comme un script de mise à jour incrémentale. Maintenant, c'est un problème. Parfois, nos développeurs ont tendance à oublier les changements de base de données et le script dans le contrôle source manque un SP ou deux.

De plus, nous avons parfois besoin d'insérer des données par défaut dans certaines des tables qui ont des valeurs strictes strictes et non des valeurs de test. Comme une table qui contient des services fournis par le panneau, nous ajoutons un nouveau nom de service , la signature, les pouvoirs et l'adresse de service, etc etc dans le ServiceTable. En outre, de nombreuses autres tables peuvent avoir des données de test qui peuvent ne pas être nécessaires. Si nous utilisons DataCompare, il générera des changeset pour les données requises (important pour le client pour activer certains services) et nos données de test qui ont été ajoutées à la base de données à la suite de notre test de la fonctionnalité ou du correctif.

Actuellement, je suis en utilisant SQLSchemaCompareTask (à partir de Visual Studio 2008 Base de données de l'équipe Power Tools Professional API) dans le fichier TFSBuild.proj de la définition de construction pour TFS 2008.

En utilisant SQLSchemaCompareTask, le script généré contient les noms de bases de données comme [dbo]. etc qui ne sont pas souhaités car le script échoue lorsqu'il est exécuté sur des bases de données SQL Server 2000 (certains de nos clients utilisent encore SQL Server 2000) comme bases de données de l'application.

Les données par défaut ne peuvent pas non plus être générées par ce processus.

Pour remédier à ce problème, je dois trouver une solution qui permet de comparer les bases de données et générer le script automatiquement qui ne doit pas être à nouveau examiné manuellement avant d'être envoyé au client.

Veuillez suggérer une méthodologie efficace de génération de script SQL et suggérer si deux bases de données différentes peuvent être utilisées ou quelque chose? Existe-t-il une boîte à outils ou une API qui peut activer l'automatisation de la génération pour les bases de données SQL Server?

Merci à tous.

Cordialement

Steve

Répondre

1

Essayez d'utiliser SQL Suite examinateur pour cela: http://www.sqlaccessories.com/SQL_Examiner_Suite/

L'outil compare à la fois le schéma et les données et produit des scripts de synchronisation (ou des scripts différentiels). Vous pouvez automatiser la création de script avec l'outil de ligne de commande fourni.

1

Plutôt que de collationnement de nombreux scripts de jeu individuel de changement (et manque donc de temps en temps des objets out), pourquoi ne pas utiliser la comparaison de schémas et de comparaison de données pour créer un seul script de votre projet de base de données à l'aide d'un base de données équivalente à celle de votre client sur la cible? Cela devrait créer un script adapté à leurs besoins. Lors de la comparaison des données, vous pouvez exclure les enregistrements de données de test que vous ne souhaitez pas transmettre à votre client en les décochant dans la grille inférieure.

+0

Merci pour cet aperçu. Pouvez-vous s'il vous plaît mettre en évidence comment puis-je être en mesure d'effectuer une comparaison de données uniquement sur les seules tables * SELECTED * en utilisant le fichier TFSBuild.proj ?? Pouvez-vous fournir ** un exemple ou un exemple ** à partir d'un fichier TFSBuild.proj? J'utilise ** SQLDataCompareTask ** de ** DBPro Power Tools 2008 ** et ** TFS 2008 ** au backend. –