Je sais comment créer des scripts, mais c'est savoir comment j'implémente ces scripts dans une application Windows ou une application web?Quelle est la meilleure façon de traiter les mises à niveau de base de données dans Windows et Web App?
Mettre l'accent sur une application web, j'ai tous mettre à niveau des scripts dans un dossier comme: \ install \ upgrade_1.4.99.sql, upgrade_1.4.101.sql etc
vérifie code C# version actuelle de la base de données de code avec la version C# et boucle à travers chaque script sql dans l'ordre et exécute le script.
Si l'utilisateur n'est pas un administrateur, affichez le message approprié indiquant qu'une mise à niveau est imminente ... quelque chose de similaire (déconnecte l'utilisateur). Les administrateurs (us) sont redirigés vers la page Web de mise à niveau et exécutent les scripts affichant l'échec ou le succès de chaque script. Un échec annule la transaction SQL.
Nous avons essentiellement plusieurs instances d'une application Web et nous sommes frustrés par les mises à niveau manuelles que nous gérons. Le problème le plus important que nous avons eu était des mises à niveau de données ... manquant toujours des transferts de données essentiels comme des données statiques (paramètres de configuration, etc.). Nous utilisons donc RedGate pour les scripts et la mise à niveau des données.
Est-ce que ma méthode ci-dessus pour mettre à jour des sites Web est la meilleure façon de procéder? Puis-je supposer le même processus pour les applications Windows?
Aussi je suis certain que ma méthode de lecture du fichier de script pourrait être améliorée. Nous lisons simplement chaque ligne de texte dans le fichier sql et attendons un "GO" et sauvegardons cette chaîne dans un tableau avant de les traiter tous. (Je n'ai pas écrit ce code). Le processus implique un grand Begin et Commit Trans ... juste pas sûr si ce droit ou non.
Désolé, pas sûr s'il y a trop de questions ici.
Comment votre processus assure-t que les scripts de droite sont exécutées sur la base de données? Quelqu'un nomme-t-il votre base de données avec le numéro de version? –