2010-01-12 2 views
3

J'ai une application basée sur la base de données et je supprime le schéma & du contenu db à chaque fois qu'il y a des changements dans le schéma. Maintenant, il est en mode développement. Bientôt nous lâchons l'application en production. Mais nous soupçonnons qu'il pourrait y avoir beaucoup de changements après la publication de l'application en production. Le logiciel doit être installé sur de nombreux sites à travers le monde. (Pas une application Web)Comment fonctionnent les outils de migration de schéma?

Comment fonctionne l'outil de migration de schéma dans ce cas? ou Comment pouvons-nous les utiliser dans des applications basées sur des bases de données typiques où nous soupçonnons les changements dans le schéma?

+0

Comment votre application est-elle écrite? S'il utilise un ORM, avez-vous examiné les outils de migration de cet ORM? – Tobu

+0

nous utilisons le linq avec Visual Studio ou C# –

Répondre

4

Téléchargez les outils RedGate et découvrez-les. Je crois qu'ils ont tous des périodes d'essai et je suis sûr que SQL Compare le fait. En règle générale, vous les pointez vers deux bases de données et ils répertorient toutes les différences entre les deux. Vous pouvez les configurer pour ignorer certaines choses, comme les commentaires, les noms de contraintes, etc. De là, vous pouvez sélectionner les éléments que vous voulez synchroniser et dans quelle direction et l'outil générera un script pour que vous le fassiez ou il fera le changements pour vous.

Dans votre situation, vous générez probablement le script, puis vous l'utilisez comme base pour ce que vous enverriez à vos clients ou ce que vous incluriez dans vos scripts d'installation. Gardez simplement une base de données pour chaque version de votre application et vous pourrez ensuite générer des scripts pour passer d'une version à l'autre en pointant sur les deux bases de données. Vous pouvez les garder vides (ou simplement remplir les tables de recherche) afin qu'ils ne prennent pas trop de place.

Vous pouvez également utiliser la fonction de comparaison de données SQL pour conserver les tables de recherche synchronisées. Utilisez-le simplement pour les tables de recherche, pas pour les tables de données principales.

Quel que soit le chemin que vous choisirez, vous devrez procéder à un codage personnalisé, soit parce que vous devez convertir des données en changeant de structure ou pour une raison similaire.

+1

Si vous votez pour le bas, cela pourrait aider à donner une raison pour que les gens puissent prendre une décision intelligente et éclairée. En l'état, il n'y a rien à dire aux gens s'il y a un problème inhérent à cette réponse que vous seul connaissez. –

0

Envisagez RoundhousE comme outil de migration SQL. Plutôt que de modifier vos scripts de création de schéma, vous écrivez des migrations qui déplacent votre schéma de la version actuelle de la base de données à la nouvelle version. RoundhousE ajoute des informations à la base de données pour garder une trace de la version en cours et applique des scripts de migration à votre base de données si nécessaire. Je recherche ces outils et RoundhousE est en tête de ma liste pour le moment.

Questions connexes