125 votes

Comment pouvez-vous version votre schéma de base de données ?

Comment préparez-vous votre SQL deltas? ne vous enregistrez manuellement chaque schéma de changer SQL pour un delta dossier, ou vous avez une sorte d'un système automatisé de différentiation des processus?

Je suis intéressé dans les conventions pour la gestion des versions schéma de base de données avec le code source. Peut-être un pre-commit hook qui diffs le schéma?

Aussi, quelles sont les options pour la différentiation des deltas existe pas de côté à partir de DbDeploy?

EDIT: à voir les réponses, je tiens à préciser que je suis familier avec le schéma standard pour l'exécution d'une migration de base de données à l'aide de deltas. Ma question est à propos de la création de la deltas eux-mêmes, de préférence automatiquement.

Aussi, les versions de PHP et MySQL si cela fait une différence. (Pas de Ruby solutions s'il vous plait).

59voto

harpo Points 17399

Voir

Est-il un système de contrôle de version de la base de données des modifications de la structure?

Comment puis-je version de ma base de données MS SQL dans le SVN?

et l'article de Jeff

Obtenez Votre Base De Données Sous Contrôle De Version

Je ressens votre douleur, et je souhaite qu'il y ait une meilleure réponse. Cela pourrait être plus proche de ce que vous recherchez.

Mécanismes pour le suivi de la DB modifications de schéma

En général, je me sens il n'est pas suffisant, la solution retenue pour le présent, et je roule mes propres dans ce domaine.

4voto

Jason Jackson Points 11563

Vous pourriez jeter un oeil au fil d’une autre, similaire : Comment puis-je version mon MS SQL database dans SVN ?.

4voto

Jay Sidri Points 3447

J’utilise schemasync pour générer un patch (et un script de restauration). Ceux-ci sont ajoutés à la repo de SVN. Il n’est pas parfait mais il fonctionne bien pour moi.

De plus, le déploiement de modifications de schéma est assez facile avec schemasync

4voto

Si vous êtes toujours à la recherche pour les options : jetez un oeil à neXtep designer. C'est un libre GPL base de données de l'environnement de développement basé sur les concepts de contrôle de version. Dans l'environnement vous travaillez toujours avec les entités versionnée et peuvent se concentrer sur le modèle de données de développement. Une fois qu'un communiqué est fait, la génération SQL moteur branché sur le système de contrôle de version peut générer n'importe quel delta vous avez besoin entre les 2 versions, et de vous offrir quelques mécanisme de livraison si vous avez besoin d'.

Entre autres choses, vous pouvez synchroniser et à l'inverse de synchroniser votre base de données au cours de l'évolution, de créer le modèle de données des diagrammes, interroger votre base de données en utilisant SQL intégrées clients, etc.

Jetez un oeil sur le wiki pour plus d'informations : http://www.nextep-softwares.com/wiki

Il soutient actuellement Oracle, MySql et PostgreSql et est en java donc le produit fonctionne sur windows, linux et mac.

2voto

Darrel Miller Points 56797

Je n'ai pas de gérer les deltas. - Je apporter des modifications à une base de données master et de disposer d'un outil qui crée une base de XML script de build basé sur la base de données master.

Quand vient le temps de mettre à niveau une base de données existante, j'ai un programme qui utilise le XML de génération basé sur le script pour créer une nouvelle base de données et les tables nues. J'ai ensuite copier les données de l'ancienne base de données à l'aide de l'INSÉRER DANS x SÉLECTIONNEZ à PARTIR de y, puis appliquer tous les index, les contraintes et les déclencheurs.

De nouvelles tables, de colonnes, de supprimer toutes les colonnes sont gérés automatiquement et avec quelques petits trucs à régler la routine de copie je peux manipuler la colonne renomme, colonne de changement de type de base, les refactorings.

Je ne recommande pas cette solution sur une base de données avec une énorme quantité de données, mais j'ai régulièrement mise à jour d'une base de données de plus de 1 go, avec plus de 400 tableaux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X