Bonjour à tous,
A l'occasion d'un chantier de refonte d'une application je me pose une question de principe : quelle est la meilleure méthode pour basculer de l'ancien système au nouveau ?
J'ai donc 2 bases back-end (appelons-les dbOld et dbNew). dbOld contient 39 tables et dbNew 30 mais la plupart ont des structures identiques hormis des modifications de propriétés (champs supplémentaires ou de tailles différentes , index modifiés etc.).
Je vois deux méthodes possibles:

Méthode 1 : rénovation de l'existant
Je garde dbOld comme cible et je la transforme progressivement en appliquant plus ou moins automatiquement les modifications permettant de la faire évoluer vers dbNew.
Inconvénient : il faut rechercher tous les écarts de structure (ce que Compare Database ne fait que partiellement) et appliquer les modifs dans le bon ordre sans rien oublier. C'est lourd surtout s'il faut refaire le travail plusieurs fois.

Méthode 2 : démolition et reconstruction
A partir de dbOld je fabrique des fichiers mouvements (Access ou CSV ou .... ?) avec lesquels je vais recharger la dbNew
vide en respectant la hiérarchie des relations.
Inconvénient : toutes les clés primaires de dbOld sont des numéros auto-incrémentés. J'ai du mal à voir comment faire facilement la transpo correspondante des foreigns keys des relations dans dbNew.
Par ailleurs les principales tables possèdent un horodatage des records en création et modification, que je ne voudrais pas voir écrasé au rechargement dans dbNew.

Comment font ceux qui ont eu ce cas de figure ? 1 ou 2 ?

Merci de vos conseils.