|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() |
Bonjour à tous,
je travail sur un logiciel client-serveur, le client étant un système de réservation d'activités touristique et le serveur est Mysql 5.0.x. Le logiciel est distribué via CD pour les nouvelles ventes et des mises à jour transmise par le web par la suite. Notre problème présentement est notre script de mise à jour de la structure de la base de données, des champs s'ajoute, des tables s'ajoute, des index aussi...et c'est une vrai galère de faire suivre les clients que nous avons déjà. Je cherche une méthode pour comparer la structure d'une bdd à jour avec celle d'un client pour ensuite pouvoir mettre à jour le client. Présentement je travail avec NSIS pour éxécuter des commandes ALTER, ADD dans mes mises à jour, j'aimerais continuer à utiliser ce logiciel mais je suis ouvert à tout! Merci beaucoup! |
|
|
00
|
|
|
#2 | |
|
Membre Expert
![]() Inscription : février 2006 Messages : 953 ![]() |
Ma première idée serait d'ajouter une table (avec un unique enregistrement) contenant un numéro de version. Ca permettrait de déterminer quel(s) scripts de mise à jours appliquer sans avoir à faire de comparaison fine du schéma. Avec une collection de scripts pour chaque changement de version il est possible de les appliquer les uns après les autres.
Pour ce qui est des bases existantes... Citation:
Pour l'ajout de table il y a "CREATE TABLE IF NOT EXISTS" qui marchera toujours. Je ne sais pas ce que permet NSIS mais il semble autoriser le développement de plug-in donc d'une façon ou d'une autre il devrait être possible d'exécuter du SQL pour interroger la BDD (SHOW INDEXES/SHOW TABLES/SHOW COLUMNS) et agir en conséquence. Avec par exemple une liste d'éléments dont on veut vérifier la présence un bout de SQL à exécuter si la condition est remplie. Voire... créer une procédure stoquée et l'appeler. Elle pourrait faire des tests sur le schéma et réaliser les ALTER nécessaires. Resterait à la supprimer à la fin. Ou encore utiliser un outil comme http://scriptella.javaforge.com/ ? En espérant avoir fait avancer le schmilblique. |
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() |
merci beaucoup de ta réponse, je vais testé ca.
je donne des nouvelles dès que nous aurons choisi une méthode. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com