ton principal souci c'est de faire évoluer la bdd (sans perdre les données) lorsque ton programme monte en version
ça signifie :
1- il faut être capable d'identifier de façon certaine la version de bdd qui est en cours d'utilisation (table version, ou md5 du schéma)
2- être capable d'appliquer toutes les modifications entre cette version et la version qui est en cours d'installation
et le pire, c'est que si un utilisateur a sauté 1 ou plusieurs versions, tu dois être capable d'appliquer plusieurs patches sur le schéma de la bdd
le point 2 va te contraindre à garder la trace (dans ton svn ou ailleurs) de toutes les versions de bdd des paquets que tu auras mis à disposition
voilà comment je procéderai :
à chaque nouvelle version stable de bdd (correspondant à une version de mon paquet d'installation) je générerai un script de migration (en m'aidant d'outils comme MySQL Workbench, mysqldiff, etc)
avec chaque paquet, je livrerai tous les scripts de màj depuis la première version de bdd,
à chaque installation j'appliquerai tous ces scripts dans l'ordre
une autre façon de faire serait :
faire un export des données
supprimer la bdd
recréer la bdd dans la dernière version connue
ré-importer les données
au lieu d'avoir à gérer des scripts de màj de bdd, il faut gérer des versions différentes de format d'export/import
c'est peut-être plus simple, je ne sais pas..
[^] # Re: Pourquoi n'allez vous pas voir ce que j'ai fait pour vous en faire une idée ?
Posté par pralines . En réponse au message Méthode pour gérer les montées de version de structure de base de données. Évalué à 2.
ton principal souci c'est de faire évoluer la bdd (sans perdre les données) lorsque ton programme monte en version
ça signifie :
1- il faut être capable d'identifier de façon certaine la version de bdd qui est en cours d'utilisation (table version, ou md5 du schéma)
2- être capable d'appliquer toutes les modifications entre cette version et la version qui est en cours d'installation
et le pire, c'est que si un utilisateur a sauté 1 ou plusieurs versions, tu dois être capable d'appliquer plusieurs patches sur le schéma de la bdd
le point 2 va te contraindre à garder la trace (dans ton svn ou ailleurs) de toutes les versions de bdd des paquets que tu auras mis à disposition
voilà comment je procéderai :
une autre façon de faire serait :
au lieu d'avoir à gérer des scripts de màj de bdd, il faut gérer des versions différentes de format d'export/import
c'est peut-être plus simple, je ne sais pas..
Envoyé depuis mon Archlinux