2008-09-29 8 views
2

Une partie de la routine d'installation du produit sur lequel je travaille installe un utilitaire de mise à jour de base de données. L'utilitaire vérifie la version actuelle de la base de données des utilisateurs et (si nécessaire) exécute une série d'instructions SQL qui mettent à niveau la base de données vers la version actuelle.Comment déployer des solutions SQL complexes via un programme d'installation?

Deux principales caractéristiques de cette routine:

  • Une fois lancé, il fonctionne sans interaction de l'utilisateur
  • opérations SQL préserver l'intégrité des données des utilisateurs

L'objectif est de garder la configuration/routine de base de données aussi simple que possible pour l'utilisateur final (le public cible est non technique). Cependant, je trouve que dans certains cas, ces deux caractéristiques sont en désaccord. Par exemple, je souhaite ajouter un index unique à l'une de mes tables, mais il est possible que les données existantes ne respectent pas cette règle. Je pourrais:

  • Choisir en silence ce qui est "juste" pour l'utilisateur et rejeter (ou archiver) des données; ou
  • Demandez à l'utilisateur de comprendre ce qu'est un index unique est et les amener à choisir les données va où

Aucune des deux options semble intéressant pour moi. Je pourrais compromettre et ne pas créer un index unique du tout, mais cela sucerait. Je me demande ce que les autres font dans cette situation?

Répondre

0

Vous ne supprimez jamais les données d'un utilisateur. Une option possible est d'essayer de créer l'index unique. Si la création de l'index échoue, faites-leur savoir qu'elle a échoué, dites-leur ce dont ils ont besoin de rechercher et fournissez-leur un script qu'ils peuvent exécuter s'ils constatent qu'ils ont une erreur de données qu'ils choisissent de corriger.

+0

C'est la solution avec laquelle j'ai couru à la fin. Je teste pour voir si je peux ajouter l'index unique. Si je ne peux pas, puis je restaurer la base de données et essayer de fournir à l'utilisateur des instructions simples sur la façon de procéder. Pas idéal, mais au moins l'intégrité des données est entre les mains des utilisateurs ... – Mitkins

1

Vérifiez SQL Packager à partir de Red-Gate. Je ne l'ai pas personnellement utilisé, mais ces gars font de bons outils dans l'ensemble et cela semble faire ce que vous cherchez. Il vous permet de modifier le script pour personnaliser l'installation: http://www.red-gate.com/products/SQL_Packager/index.htm

+0

Je supporte cette solution. Je l'utilise pour moi-même. –

Questions connexes