changement de base de données sur la gestion de correctif logiciel / mise à jour / mise à niveau

StackOverflow https://stackoverflow.com/questions/543119

Question

Il a été quelques semaines, je suis en train de trouver une explication plus détaillée avec des exemples comment gérer mon changement de base de données sur correctif logiciel.

Situation:

  • Je déploie version de l'application WPF utilisateur. App utilise le fichier de données MSSQL pour Les données de stockage app (Déploiement avec le profil du client et SqlServer pré-requis Compact 3.5)
  • Dans d'autres modifications du schéma de base de données de développement ajouter des fonctionnalités supplémentaires données trop
  • Je suis en train d'exécuter un Patch / mineur / mise à jour majeure avec Visual l'édition Studio 2008 et msi

Je veux mettre à jour l'application et le fichier de base de données utilisateurs, mais pas toucher les données qui ont été stockées dans cette base de données. Il semble facile, mais je ne parviens pas à trouver sur le web comment obtenir ce fait avec l'édition Visual Studio

Ce que j'ai recueilli à ce jour sont 2 choix:

  • Créer un script de mise à jour SQL pour chaque libérer et essayer base de données mise à jour sur 1er lancement du programme après avoir patché.
  • Créer un projet d'installation de base de données et essayer à l'écriture à partir de là (aucune idée de comment faire).

Je serais heureux d'entendre ce que certains d'entre vous utilisent ou utiliseraient ce cas. Certains lien vers des exemples / explication détaillée comment todo serait génial. Je ne suis pas très bon à ce genre de choses déploiement / base de données ... encore ...:)

Merci d'avance.

Était-ce utile?

La solution

Cet article sur " Rails style de base de données dans les migrations .Net " pourrait sois utile. Depuis la montée des rails, il y a eu beaucoup de travail sur les meilleures pratiques pour les migrations de bases de données, qui peuvent être mises à profit dans d'autres langues et plates-formes.

Autres conseils

Dans mon projet actuel, nous utilisons une technique appelée l'intégration de base de données continue.

Nous recueillons tous les scripts de changement sql (qui peut être en train de créer / modifier des tables, des procédures stockées, mais aussi la migration des données, etc ...), dans le projet ac # et les déployer en même temps que le reste du logiciel.

En utilisant cette technique, nous pouvons faire en sorte que toutes les bases de données de développement sont aussi bien, car il est intégré dans le système de construction de visual studio mis à jour.

Nous courons ce script MSBuild pour local et construit pour le déploiement. Il vérifie un numéro de version dans le datebase et exécute tous les scripts avec un plus grand nombre.

Je ne suis pas friand de MSBuild, mais il fait le travail.

Martin Fowler a un article sur conception base de données évolutive qui a une certaine expérience à ce sujet.

Si vous utilisez studio de gestion SQL Server pour apporter des modifications, vous pouvez utiliser la fonction « Générer le changement de script » pour laisser le script les changements pour vous.

Si vous ajoutez la classe d'installation à votre DLL ou EXE il est méthode d'installation sera appelée lors de la configuration (voir notre MSDN pour plus de détails, VS peut faire une mini-proj de configuration pour vous et vous pouvez simplement copier le squelette et attributs). Ensuite, vous pouvez exécuter des commandes SQL contre les fichiers CE existants CE et de sauvegarde et même faire un retour en arrière en cas de problème (classe d'installation a des méthodes à suivre les étapes transnationales complètes au niveau de l'ensemble de l'installation - la pièce de chose de l'esprit: -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top