Téléchargez les outils RedGate et découvrez-les. Je crois qu'ils ont tous des périodes d'essai et je suis sûr que SQL Compare le fait. En règle générale, vous les pointez vers deux bases de données et ils répertorient toutes les différences entre les deux. Vous pouvez les configurer pour ignorer certaines choses, comme les commentaires, les noms de contraintes, etc. De là, vous pouvez sélectionner les éléments que vous voulez synchroniser et dans quelle direction et l'outil générera un script pour que vous le fassiez ou il fera le changements pour vous.
Dans votre situation, vous générez probablement le script, puis vous l'utilisez comme base pour ce que vous enverriez à vos clients ou ce que vous incluriez dans vos scripts d'installation. Gardez simplement une base de données pour chaque version de votre application et vous pourrez ensuite générer des scripts pour passer d'une version à l'autre en pointant sur les deux bases de données. Vous pouvez les garder vides (ou simplement remplir les tables de recherche) afin qu'ils ne prennent pas trop de place.
Vous pouvez également utiliser la fonction de comparaison de données SQL pour conserver les tables de recherche synchronisées. Utilisez-le simplement pour les tables de recherche, pas pour les tables de données principales.
Quel que soit le chemin que vous choisirez, vous devrez procéder à un codage personnalisé, soit parce que vous devez convertir des données en changeant de structure ou pour une raison similaire.
Comment votre application est-elle écrite? S'il utilise un ORM, avez-vous examiné les outils de migration de cet ORM? – Tobu
nous utilisons le linq avec Visual Studio ou C# –