Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation du contrôle de version (Git) sur une base de données MySQL

Vous pouvez sauvegarder votre base de données dans un référentiel git. Bien sûr, si vous placez les données dans git sous une forme binaire, vous perdrez toute la capacité de git à stocker efficacement les données à l'aide de diffs (modifications). La meilleure pratique numéro un est donc la suivante :stocker les données dans un format texte sérialisé.

mysqldump est un programme approprié pour vous aider à le faire. Ce n'est pas parfait cependant. Si quelque chose perturbe l'ordre de sérialisation des éléments (par exemple, à la suite de la création de nouvelles tables, etc.), des ruptures artificielles entreront dans le diff. Cela diminuera l'efficacité du stockage. Vous pouvez écrire un sérialiseur personnalisé pour sérialiser uniquement les modifications - mais vous faites alors le travail acharné pour lequel git est déjà doué. Utilisez simplement le vidage sql.

Cela étant dit, ce que vous voulez faire n'est pas ce que les développeurs veulent dire lorsqu'ils parlent de mettre la base de données dans git. Par exemple, si vous lisez le lien posté par @eggyal (lien vers codinghorror ) vous verrez que ce qui est réellement placé dans git sont les scripts nécessaires pour générer la base de données initiale. Il peut y avoir des scripts supplémentaires, comme ceux pour remplir les données de la base de données avec un état propre, ou pour les remplir avec des données de test. Tous ces scripts sql sont des fichiers texte et ont à peu près le même format que le vidage sql que vous obtiendriez de mysqldump. Il n'y a donc aucune raison pour que vous ne puissiez pas faire de même avec vos données quotidiennes.