Question

Je développe une application avec client lourd à la fois et les composants clients légers. Nous aussi la version notre base de données tels que les changements de schéma se traduisent par leurs propres scripts numéro de version et le changement peut être appliqué. changements de base de données, cependant, ne se produisent pas toujours en phase avec les changements épais client. Oui, le changement de la base de données d'aujourd'hui peut ajouter une colonne et nécessiter un dans le client lourd, mais le changement de base de données de demain pourrait corriger une erreur dans une procédure stockée qui ne nécessite pas de changements externes. Comment puis-je coder le client lourd pour vérifier si elle est compatible avec une version de base de données spécifique lorsque certains sont rétrocompatibles et certains ne sont pas?

Dans la même que quelqu'un se soucie, la nôtre est une application .NET intégration avec SQL Server, mais cela semble plus d'une question de versionnage qu'une question de plate-forme. À moins d'une solution spécifique de plate-forme ...

Était-ce utile?

La solution

Vous pouvez créer une table, ex. métadonnées avec deux colonnes de chaîne, et y mettre une entrée (ou plusieurs entrées) avec la version actuelle du schéma. Je suppose que vous faites quelque chose de similaire maintenant.

Et diviser la version à deux chiffres (comme système majeur / mineur). Lorsque vous modifiez le schéma de manière non-arrière compatibile vous INCRESE la version majeure. Après le changement rétrocompatible vous mettez à jour juste version mineure.

Major est utilisé par l'application pour vérifier si elle est compatible avec le schéma actuel et majeur mineur + est utilisé pour vérifier si vous pouvez / devez mettre à jour le schéma.

Je pense que c'est la solution qui est utilisée par la plupart des applications.

Autres conseils

Pouvez-vous adopter un système de numéro de version majeure / mineure?

Un changement du nombre important implique que les clients ont besoin de mise à jour, et le changement du nombre mineur ne fonctionne pas.

Avec l'un de ces numéros de version sont toujours plus grands.

Si la base de données connaît la version minimale du client il a besoin, et le client connaît la version minimale de la base de données nécessite, il est une simple vérification pour déterminer ce qui doit être mise à jour (le cas échéant) - maintenant si vous encapsulez la logique dans une procédure stockée ou dans le code, c'est votre décision ...

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