|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2004 Messages : 92 ![]() |
Bonjour, j'ai vu dans la présentation de Interbase 7.5, qu'elle gérait le versioning des bases de données : http://www.mailsoft.fr/borland-inter...dows-p-83.html
Ma question : Est-ce que firebird fait la même chose? En effet je gère une base de données IB 5.6 , et je dois la migrer soit en Firebird soit en IB 7.5. Tout dépendra du prix (y a pas foto c'est FB 1.5) et entre autre de cette fonctionnalité. En effet dès que je fais une modif dans la base : ajout nouvelle table, nouvelle colonne... Je dois déployer les scripts de modification de ma base. Le pb c'est que je dois redéployer également un nouvelle exécutable. Est-ce que le versioning proposé par IB 7 règle ce genre de pb. Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Vous confondez les versions de votre logiciel ou de l'architecture de votre base et le mécanisme de "versioning" utilisé par interbase et Firebird pour gérer les accès conccurentiels aux données de la base.
L'autre technique utilisé par les autres SGBD est le 'locking' qui consiste à verouiller les données qui sont mise à jours. Mais votre exemple n'est pas tout a fait vrai car si vous ajoutez une table ou colonne, celà ne dois pas poser de problème à vos anciens exécutables. Par contre le nouvel exécutable ne fonctionnera pas avec l'ancienne base. Le problème se pose c'est si vous supprimez une table ou colonne. Là en effet l ancien exécutable va planter lorsqu'il essayera d'accèder à la colonne ou table supprimée. |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2004 Messages : 92 ![]() |
Merci.
C'est là mon problème. Une fois que la base est mise à jour avec mes scripts de modification de structure (alter, ...) elle tourne correctement avec mon nouvel exe : Normal! Par contre mon nouvel exe ne fonctionnera pas avec une ancienne base : si je fait appel à une donnée qui n'est pas dans mon ancienne bd mon exe va planter: effectivement je peux gérer une exception mais bon... Je ne crois pas qu'i y ait de solutions miracles : a savoir faire fonctionner une base n-1, n-2, n avec un Exe unique. |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() ![]() |
Cela peut se faire mais ça demande beaucoup de temps et aussi possible seulement si c'etais appliqué des la conception de la première version.
En effet, lors de mes dev, j'ajoute une table qui contient seulement l'information sur la Bdd à savoir la version, et autres infos. Cette table me sert de repère et dans mes classes sous delphi, les methodes et fonctions doit faire reference à cette repère afin que même si l'executable ou la table change de version, tout fonctionne normalement. Mais cette technique aussi a un incovenient : - la compatibilité ascendante de la structure de la BDD. - plus de temps de developpement - possibilité de non optimisation. - etc etc A+
__________________
On progresse ..... |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2004 Messages : 92 ![]() |
Merci pour ces réponses.
Bonne journée de dev |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com