Les méthodes que j'ai vues qui prennent en charge les mises à niveau incrémentielles sont toutes quelque chose dans le sens de la maintenance d'un ensemble de «scripts de modification». Pour une installation initiale, vous pouvez restaurer une sauvegarde «propre» connue vers une nouvelle base de données ou vous pouvez utiliser un script SQL ou un outil ORM pour projeter un schéma dans DMBS. NHibernate a la capacité de générer un schéma en fonction d'une configuration de mappage, et vous pouvez définir ce comportement depuis l'intérieur d'un programme d'installation.
Une fois le DB installé, vous devez effectuer une mise à jour incrémentielle. Cela signifie généralement créer un script pour chaque modification de la base de données, et les inclure dans le package d'installation, avec un "runner" (un processus de traitement par lots simple) qui fera tourner les scripts et les exécutera sur la base de données. S'ils dépendent de l'ordre, assurez-vous que la structure de votre fichier en tient compte (mais il est généralement préférable de combiner deux scripts lorsque l'un doit être exécuté en premier). Assurez-vous également que le changement n'est pas "destructeur"; par exemple, l'ajout d'une colonne à une table ne peut pas impliquer de déposer et de recréer la table, même si ce serait moins de code. Le changement doit également être répétitif ou non-répétitif, car vous devrez probablement inclure le même script deux fois. Cela peut signifier garder une trace des noms des scripts que vous avez exécutés, et/ou en faisant en sorte que chaque script détecte qu'une modification qu'il a faite n'a pas déjà été faite avant de l'exécuter. Gardez à l'esprit que si vous utilisez des vues, des process stockés ou des fonctions SQL, vous pouvez les supprimer et les recréer à volonté sans affecter les données. Enfin, assurez-vous que toutes les connexions à une base de données en cours de mise à jour sont fermées ou supprimées avant d'exécuter des mises à jour pour éviter tout comportement imprévisible.