Comment puis-je mettre une base de données sous git (contrôle de version)?

Je suis en train de faire une application web, et j'ai besoin de faire une branche des changements majeurs, la chose est, ces changements nécessitent des modifications au schéma de base de données, donc je voudrais mettre l'ensemble de la base de données sous git en tant que bien.

Comment dois-je faire? est-il un dossier spécifique que je peux garder en vertu d'un dépôt git? Comment puis-je savoir laquelle? Comment puis-je être sûr que je suis en train de mettre le bon dossier?

J'ai besoin d'être sûr, parce que ces changements ne sont pas compatibles; je ne peux pas se permettre de visser.

La base de données dans mon cas, c'est PostgreSQL

Edit:

Quelqu'un a suggéré de prendre des sauvegardes et de mettre le fichier de sauvegarde sous contrôle de version à la place de la base de données. Pour être honnête, je trouve cela vraiment difficile à avaler.

Il y a une meilleure façon.

Mise à jour:

OK, donc il ya pas de meilleure façon, mais je ne suis pas encore tout à fait convaincu, donc je vais un peu changer ma question:

J'aimerais mettre l'ensemble de la base de données sous contrôle de version, ce moteur de base de données puis-je utiliser afin que je puisse mettre la base de données sous contrôle de version à la place de son dump?

Serait sqlite être git de l'environnement?

Depuis ce n'est que l'environnement de développement, je peux choisir la base de données que je veux.

Edit2:

Ce que je veux vraiment, c'est de ne pas suivre mon évolution de l'histoire, mais pour être en mesure de passer de mon "nouveaux changements radicaux" de la branche de l'actuel "branche stable" et être en mesure, par exemple pour corriger quelques bugs/problèmes, etc, avec la branche stable. Tels que, lorsque je change de branches, la base de données de l'auto-magiquement devient compatible avec la branche, je suis actuellement sur.
Je n'ai pas vraiment beaucoup de soins sur les données réelles.

  • Pour être honnête, je viens de faire des copies de la base de données si je suis en introduisant des modifications de schéma et d'avoir à traiter avec de multiples branches de développement en même temps... dev bases de données devrait être assez petit pour le faire. J'avais l'égard de tout système qui a essayé d'être intelligent et faire DB changements juste parce que j'ai changé de branche source avec suspicion. Et j'aimerais aussi être sûr que les choses continuer à travailler, si j'ai tout simplement cloné mon espace de travail et avait une branche en un seul endroit, et l'autre dans le nouveau.
  • Voir aussi le git base de l'outil de sauvegarde bup
  • Si vous considérez le script (et ses composantes) à l'initialisation de votre base de données comme un artefact sous contrôle de version, puis 'sauvegardes' peut ne pas sembler une mauvaise chose. Si vous modifiez votre base de données de schéma dans une radical de direction, vous avez besoin de mettre à jour le script que inits la base de données avec les données.
  • La caisse de ma réponse, pour un logiciel qui fait ça exactement : stackoverflow.com/a/28123546/1662984
  • Voir: Klonio - base de données distribuée versioning
  • liquibase.org ?
  • Gros fichiers binaires (comme les fichiers de base de données) ne fonctionnent pas bien avec git. Vous pouvez le faire facilement si, juste être sûr de vérifier que git n'est pas d'essayer de corriger les fins de ligne
  • Résumé des options pour la version de base de données de contrôle - nombreuses et spécifiques à PostgreSQL: stackoverflow.com/questions/846659/...

InformationsquelleAutor hasen | 2009-05-11