Question

Dire que j'ai un site Web et une base de données de ce site Web hébergé localement sur mon ordinateur (pour le développement) et une autre base de données hébergée (pour la production) ... à savoir d'abord que je fais les changements sur le dev db puis je fais les changements à la DB prod.

Quelle est la meilleure façon de transférer les changements que je l'ai fait sur la base de données locale à la base de données hébergée?

S'il importe, j'utilise MS Sql Server (2008)

Était-ce utile?

La solution

La bonne façon de le faire avec Visual Studio et SQL Server est d'ajouter une à la solution d'application Web Base de données du projet . Le projet de base de données doit avoir des fichiers SQL qui peuvent recréer la base de données entière complètement sur un nouveau serveur ainsi que toutes les tables nécessaires, les utilisateurs des procédures et des rôles.

De cette façon, ils sont inclus dans le contrôle de code source pour tout le reste du code.

Il y a un Modifications sous-dossier dans le projet de base de données où je mets les fichiers SQL qui appliquent de nouvelles modifications ou ajouts à la base de données pour les versions ultérieures.

Le SQL dans les fichiers doit être écrit avec une bonne « si existe » blocs de telle sorte qu'il peut être exécuté en toute sécurité plusieurs fois sur une base de données déjà mis à jour sans erreur.

En règle générale, vous ne devriez jamais faire vos modifications directement dans la base de données - modifier au lieu du script SQL dans le projet et l'appliquer à la base de données pour vous assurer que votre code source (les fichiers SQL) est toujours à jour <. / p>

Autres conseils

Nous le faisons dans le (Ruby on) Rails monde en écrivant « migrations », qui capture les modifications apportées à la structure DB à chaque point. Ceux-ci sont exécutés avec un outil de migration (une tâche râteau), qui écrit également à une table DB il sait si une migration particulière a été exécuté ou non.

Vous pouvez faire une telle structure pour votre plate-forme de dev (.Net?), Mais je pense que dans d'autres réponses à cette question que les gens vont proposer des outils disponibles pour la base de données de manutention versioning dans votre plate-forme de développement, ou peut-être pour votre DB spécifique .

Je ne sais pas de ces derniers, mais vérifiez cette liste . Je vois beaucoup de choses de salaire là-bas, mais il doit y avoir quelque chose de gratuit. Aussi vérifier cela .

J'émigre changements par des scripts de modification par écrit par les développeurs quand ils ont testé / vérifié leurs modifications. (L'exception étant le déplacement de grandes données.) Tous les scripts sont stockés dans un système de contrôle de la source. et peut être vérifié par le CBM.

Il est manuel, parfois beaucoup de temps, mais efficace, un processus sûr et contrôlé.

Les bases de données sont trop importants pour copier dev.

Il existe des outils pour aider à créer / vérifier ces scripts. Voir http://www.red-gate.com/ Je l'ai utilisé leurs outils pour comparer les 2 bases de données pour créer des scripts. Brian

Si les changements sont petits, je les fais parfois à la main. Pour des changements plus importants, j'utilise Red Gate l ' SQL pour générer Comparer des scripts de modification. Ceux-ci sont vérifiées à la main et exécuter dans l'environnement d'assurance qualité d'abord pour vous assurer qu'ils ne cassent rien. Pour les grands changements, nous courons une sauvegarde spéciale avant de faire le changement à la fois dans l'assurance qualité et la production.

Nous avons utilisé d'utiliser l'approche fournie par Ron. Il est logique pour un grand projet avec l'équipe dédiée de CBM. Mais si vous ne possédez pas de développeurs dédiés qui écrivent le code uniquement pour DB cette approche est temps et ressource coûteuse .

L'approche à utiliser Redgate DB comparer est pas bon. Vous avez encore faire beaucoup de travail manuel, vous pouvez sauter une étape par erreur .

Il a besoin de quelque chose de mieux. C'est était la raison pour laquelle nous avons construit le « Agile DB Loisirs / Import / arrière / outil d'exportation » L'outil est libre.

Avantages: vos développeurs utilisent des outils pour développer DEV préférees DB. Ensuite, ils courent le DB RIRE et il fait reverseengeniring DB (tables, vues, Stor proc, etc) et d'exporter des données dans des fichiers XML. fichiers XML, vous pouvez conserver dans le tout système de dépôt de code.

La deuxième étape consiste à exécuter DB RIRE une fois de plus pour générer des scripts de différence entre la structure et les données dans des fichiers XML et dans la production DB.

Bien sûr, vous pouvez faire des itérations autant que vous avez besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top