Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Beginnend mit der Versionierung von MySQL-Schemas ohne Overkill. Gute Lösungen?

Einfacher Weg für ein kleines Unternehmen:Sichern Sie Ihre Datenbank in SQL und fügen Sie sie Ihrem Repository hinzu. Fügen Sie dann jedes Mal, wenn Sie etwas ändern, die Änderungen in der Dump-Datei hinzu.

Sie können dann diff verwenden, um Änderungen zwischen Versionen anzuzeigen, ganz zu schweigen von Kommentaren, die Ihre Änderungen erklären. Dies macht Sie auch praktisch immun gegen MySQL-Upgrades.

Der einzige Nachteil, den ich dabei gesehen habe, ist, dass Sie daran denken müssen, die SQL manuell zu Ihrer Dumpdatei hinzuzufügen. Sie können sich selbst beibringen, sich immer daran zu erinnern, aber seien Sie vorsichtig, wenn Sie mit anderen zusammenarbeiten. Das Verpassen eines Updates könnte später ein Problem sein.

Dies könnte abgemildert werden, indem Sie ein ausgeklügeltes Skript erstellen, das dies für Sie erledigt, wenn Sie sich der Subversion unterwerfen, aber das ist ein bisschen viel für eine Ein-Mann-Show.

Bearbeiten: In dem Jahr, das seit dieser Antwort vergangen ist, musste ich für ein kleines Team ein Versionierungsschema für MySQL implementieren. Das manuelle Hinzufügen jeder Änderung wurde als umständliche Lösung angesehen, ähnlich wie es in den Kommentaren erwähnt wurde, also haben wir die Datenbank gesichert und diese Datei zur Versionskontrolle hinzugefügt.

Was wir herausfanden, war, dass Testdaten im Dump landeten und es ziemlich schwierig machten, herauszufinden, was sich geändert hatte. Dies konnte gelöst werden, indem nur das Schema ausgegeben wurde, aber dies war für unsere Projekte unmöglich, da unsere Anwendungen von bestimmten Daten in der Datenbank abhängig waren, um zu funktionieren. Schließlich kehrten wir zum manuellen Hinzufügen von Änderungen zum Datenbank-Dump zurück.

Dies war nicht nur die einfachste Lösung, sondern löste auch bestimmte Probleme, die einige MySQL-Versionen beim Exportieren/Importieren haben. Normalerweise müssten wir die Entwicklungsdatenbank sichern, alle Testdaten, Protokolleinträge usw. entfernen, gegebenenfalls bestimmte Namen entfernen/ändern und erst dann die Produktionsdatenbank erstellen können. Durch das manuelle Hinzufügen von Änderungen konnten wir genau steuern, was in der Produktion landen würde, Stück für Stück, sodass am Ende alles fertig war und der Wechsel in die Produktionsumgebung so einfach wie möglich war.