• [^] # Re: Pourquoi n'allez vous pas voir ce que j'ai fait pour vous en faire une idée ?

    Posté par . 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 :

    • à 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..

    Envoyé depuis mon Archlinux