Heim >Backend-Entwicklung >PHP-Tutorial >Datenbankversioning mit DBV

Datenbankversioning mit DBV

Christopher Nolan
Christopher NolanOriginal
2025-02-21 12:09:10919Durchsuche

Datenbankversioning mit DBV

Key Takeaways

  • DBV ist ein PHP-basierter Datenbankversionskontrollsystem für MySQL-Datenbanken. Es ist nicht eigenständig und erfordert ein Versionskontrollsystem wie Git, Mercurial oder SVN, um Änderungen mit Ihrem Team zu synchronisieren.
  • DBV ermöglicht es Entwicklern, Änderungen an einer Datenbank zu verfolgen, diese Änderungen mit den Teammitgliedern zu teilen und sicherzustellen, dass alle mit der neuesten Kopie der Datenbank arbeiten. Es kann Änderungen wie neue Tabellen, umbenannte oder fallengelassene Tabellen, neue oder aktualisierte Felder, neue oder aktualisierte Tabellenzeilen und mehr verfolgen.
  • Der DBV -Workflow beinhaltet das Erstellen einer lokalen Kopie der Datenbank, das Vornehmen von Änderungen, den Exportieren dieser Änderungen in die Festplatte, die Verpflichtung zur Quellensteuerung und das Schieben in ein zentrales Repository. Teammitglieder können diese Änderungen dann an ihre lokale Kopie ziehen.
  • DBV unterstützt auch Revisionen und ermöglicht es Entwicklern, die Struktur von mehr als einer Tabelle zu ändern. Es ist jedoch eine gute Praxis, Änderungen an einer einzelnen Tabelle vorzunehmen und eine Überarbeitung dafür vorzunehmen, es sei denn, die Änderungen sind miteinander verbunden.

Es ist eine gute Praxis, in einem Ihrer Projekte immer ein Versionskontrollsystem zu verwenden. Sei es ein Nebenprojekt, in dem Sie der einzige Entwickler oder ein Teamprojekt sind, bei dem fünf oder mehr Menschen gemeinsam daran arbeiten. Die Idee, Ihre Datenbank in die Versionskontrolle zu setzen, ist jedoch nicht wirklich weit verbreitet. Oft halten wir die Datenbank für selbstverständlich.

Aber wie die Quelldateien in unserem Projekt ändert sich auch die Datenbank ständig. Aus diesem Grund brauchen wir auch eine Möglichkeit, die Änderungen zu verfolgen, die wir vorgenommen haben, und sie einfach an andere Mitglieder unseres Teams weitergeben.

In diesem Artikel werden wir uns DBV ansehen, ein in PHP für MySQL -Datenbanken geschriebenes Datenbankversionskontrollsystem, sodass Sie PHP und MySQL installieren müssen, bevor Sie es verwenden können, zusammen mit einem Webserver wie Apache oder NGINX.

Ein wichtiger Hinweis zu dieser Software ist, dass es sich nicht um ein Stand-Alone-Datenbank-Versionskontrollsystem handelt, da es ein Versionskontrollsystem wie Git, Mercurial oder SVN benötigt, um Änderungen mit Ihrem Team zu synchronisieren.

DBV

installieren

Um mit DBV zu arbeiten, müssen Sie zuerst den Installateur von ihrer Website herunterladen und in Ihr Projektverzeichnis extrahieren und dann den resultierenden Ordner in DBV umbenennen. Dies gibt Ihnen den folgenden Weg:

<span>my_project/dbv</span>

Ein alternativer Ansatz ist nur das Klonen von Github.

DBV -Konfiguration

Sie können mit der Konfiguration der Optionen für DBV beginnen, indem Sie eine Kopie der Datei config.php.pample erstellen und in config.php.

umbenennen

Die wichtigsten Dinge, die hier aktualisiert werden müssen, sind die ersten beiden Abschnitte. Ersetzen Sie einfach die Werte für my_username, my_password, my_database für die Werte in Ihrer aktuellen Datenbankkonfiguration:

<span><span><?php
</span></span><span><span>/**
</span></span><span><span> * Your database authentication information goes here
</span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/
</span></span></span><span><span> */
</span></span><span><span>define('DB_HOST', 'localhost');
</span></span><span><span>define('DB_PORT', 3306);
</span></span><span><span>define('DB_USERNAME', 'my_username');
</span></span><span><span>define('DB_PASSWORD', 'my_password');
</span></span><span><span>define('DB_NAME', 'my_database');
</span></span><span>
</span><span><span>/**
</span></span><span><span> * Authentication data for access to DBV itself
</span></span><span><span> * If you leave any of the two constants below blank, authentication will be disabled
</span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/#optional-settings
</span></span></span><span><span> */
</span></span><span><span>define('DBV_USERNAME', 'my_username');
</span></span><span><span>define('DBV_PASSWORD', 'my_password');
</span></span><span><span>?></span></span>

Der erste Abschnitt in der obigen Konfigurationsdatei dreht sich um die MySQL -Datenbankdetails in Ihrem Computer.

Der zweite Abschnitt sind die Anmeldedetails für DBV selbst.

Öffnen Sie als nächstes die Datei .gitignore. Standardmäßig enthält es Folgendes:

<span>my_project/dbv</span>

Dies sind die Dateien, die von Git ignoriert werden. Wenn Sie jedoch wissen, dass Sie über die gleichen Datenbankinformationen verfügen (Benutzer, Kennwort, Datenbankname) wie Ihre Teamkollegen, können Sie config.php aus der .gitignore -Datei entfernen. Wenn nicht, müssen sie ihre eigene Konfigurationsdatei erstellen und sie von der Quellvertretung ausschließen.

Als nächstes müssen Sie auch die Datei Daten/Meta/Revision zu .GIitignore hinzufügen, da DBV hier Informationen zu Ihrer lokalen Kopie der Datenbank legt. Für Ihre Teamkollegen kann es anders sein, daher muss es von der Quellvertretung ausgeschlossen werden.

Sobald Sie mit der Konfiguration fertig sind, können Sie jetzt DBV in die Versionskontrolle hinzufügen:

<span><span><?php
</span></span><span><span>/**
</span></span><span><span> * Your database authentication information goes here
</span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/
</span></span></span><span><span> */
</span></span><span><span>define('DB_HOST', 'localhost');
</span></span><span><span>define('DB_PORT', 3306);
</span></span><span><span>define('DB_USERNAME', 'my_username');
</span></span><span><span>define('DB_PASSWORD', 'my_password');
</span></span><span><span>define('DB_NAME', 'my_database');
</span></span><span>
</span><span><span>/**
</span></span><span><span> * Authentication data for access to DBV itself
</span></span><span><span> * If you leave any of the two constants below blank, authentication will be disabled
</span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/#optional-settings
</span></span></span><span><span> */
</span></span><span><span>define('DBV_USERNAME', 'my_username');
</span></span><span><span>define('DBV_PASSWORD', 'my_password');
</span></span><span><span>?></span></span>

und schieben Sie es dann in Ihr zentrales Repository für die anderen Mitglieder Ihres Teams, um zu ziehen:

<span>config.php
</span><span>.buildpath
</span><span>.project
</span><span>.settings</span>

Welche Änderungen, um den Überblick zu behalten?

Bevor wir uns tatsächlich mit DBV bewegen. Ich möchte ein wenig berühren, welche Änderungen, um sie im Auge zu behalten. In der Datenbankwelt kann so ziemlich jede Veränderung in die Quellensteuerung eingesetzt werden. Dies schließt Folgendes ein:

  • Neue Tabellen
  • Umbenannte Tabellen
  • fallengelassene Tabellen
  • Neue Felder
  • aktualisiertes Feld
  • gelöschtes Feld
  • Neue Tabelle Zeile (Standard -Tabellendaten)
  • aktualisierte Tabelle Zeile
  • gelöschte Tabellenzeile
  • Ansichten
  • gespeicherte Verfahren
  • Trigger
  • Funktionen (benutzerdefinierte Funktionen)

DBV Workflow

Sie können DBV aus Ihrem Browser aus auf die folgende URL ausgreifen:

<span>git add dbv
</span><span>git commit -m "add dbv into project"</span>

oder wenn Sie einen virtuellen Host definiert haben, indem Sie auf seine URL zugreifen.

Dies gibt Ihnen eine Schnittstelle ähnlich wie folgt:

Datenbankversioning mit DBV

Aus dem obigen Screenshot sehen Sie die Tabellen, die sich derzeit in der Datenbank befinden, die Sie früher in der config.php geliefert haben. Es gibt auch ein In -DB -Feld, in dem angezeigt wird, ob sich derzeit eine bestimmte Tabelle in der Datenbank befindet, und in der Festplatte, in der angezeigt wird, ob die aktuelle Tabelle in Ihrem Dateisystem gespeichert ist. Mit diesen Informationen wissen Sie ziemlich genau, ob Sie derzeit die neueste Kopie der Datenbank haben.

Eine wichtige Sache, die Sie bei der Arbeit mit DBV erinnern sollten, ist, dass Änderungen, die Sie an Ihrer lokalen Kopie Ihrer Datenbank vornehmen, über eine lokale Kopie verfügen, die Sie in Ihre Quellensteuerung eingehen können.

Das bedeutet, dass Sie, wenn Sie eine neue Tabelle in der Datenbank erstellen, sie auf die Festplatte exportieren müssen. Alle Tabellen, die in die Festplatte exportiert werden, werden im Daten-/Schema -Verzeichnis Ihrer DBV -Installation gespeichert. Aus dem Screenshot unten sehen Sie, dass wir derzeit nicht die Tabelle TBL_LEADINFO in unserem Dateisystem haben:

Datenbankversioning mit DBV

Nach dem Exportieren der neu erstellten Tabelle in die Festplatte müssen Sie sie in die Versionskontrolle einlassen:

<span>my_project/dbv</span>

Dann können Sie es einfach in Ihr zentrales Repository schieben:

<span><span><?php
</span></span><span><span>/**
</span></span><span><span> * Your database authentication information goes here
</span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/
</span></span></span><span><span> */
</span></span><span><span>define('DB_HOST', 'localhost');
</span></span><span><span>define('DB_PORT', 3306);
</span></span><span><span>define('DB_USERNAME', 'my_username');
</span></span><span><span>define('DB_PASSWORD', 'my_password');
</span></span><span><span>define('DB_NAME', 'my_database');
</span></span><span>
</span><span><span>/**
</span></span><span><span> * Authentication data for access to DBV itself
</span></span><span><span> * If you leave any of the two constants below blank, authentication will be disabled
</span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/#optional-settings
</span></span></span><span><span> */
</span></span><span><span>define('DBV_USERNAME', 'my_username');
</span></span><span><span>define('DBV_PASSWORD', 'my_password');
</span></span><span><span>?></span></span>

Zu diesem Zeitpunkt können Sie Ihren Teamkollegen nur mitteilen, dass Sie eine neue Tabelle in der Datenbank erstellt haben und dass Sie sie bereits in das zentrale Repo gebracht haben. Jetzt können sie es einfach zu ihrer lokalen Kopie ziehen.

<span>config.php
</span><span>.buildpath
</span><span>.project
</span><span>.settings</span>

Sagen Sie Ihrem Teamkollege als nächstes an, die DBV -Seite zu besuchen (http: // localhost/your_project/dbv).
Ihr Teamkollege wird wahrscheinlich einen Bildschirm haben, der Folgendes ähnelt:

Datenbankversioning mit DBV

Zu diesem Zeitpunkt kann er einfach das Kontrollkästchen neben der Tabelle TBL_TASKS ankreuzen und auf die Schaltfläche "Auf die Datenbank drücken" klicken. Dadurch wird die Tabelle TBL_Tasks in der Datenbank erstellt.

Und das ist der Workflow für die Arbeit mit DBV. Ziemlich einfach, nicht wahr? Aber was ist, wenn Sie Änderungen am aktuellen Datenbankschema vornehmen müssen? Vielleicht haben Sie ein Feld verpasst oder vergessen, es in eine bestimmte Tabelle hinzuzufügen, bevor Sie es an Ihr Team verteilt haben. Hier kommen Revisionen ins Spiel.

Revisionen

Wenn Sie wie ich sind und versucht haben, das Schema zu aktualisieren (ein neues Feld hinzugefügt, ein Feld entfernen, den Datentyp usw. aktualisieren), haben Sie möglicherweise festgestellt Standard. Für diese Änderungen müssen Sie eine Revisionsdatei erstellen. Sie können dies tun, indem Sie einen neuen Ordner im Daten-/Überarbeitungsverzeichnis in Ihrer DBV -Installation erstellen. Die Konvention für die Benennung des Ordners nutzt eine Zahl. Das erste Mal, dass Sie eine Überarbeitung durchführen, wäre der Ordnername 1 und dann würde es das nächste Mal 2 und so weiter sein. Beachten Sie, dass Revisionen Änderungen sind, die auf die gesamte Datenbank angewendet werden können. Dies bedeutet, dass Sie die Freiheit haben, die Struktur von mehr als einer Tabelle zu ändern, aber es ist eine gute Praxis, nur Änderungen an einer einzelnen Tabelle vorzunehmen und eine Überarbeitung dafür vorzunehmen. Dies ist für Sie und Ihr Team, um die Änderungen einfach zu verwalten und später einen Sinn daraus zu machen. Die einzige Ausnahme von dieser Praxis ist, wenn die Änderungen miteinander verbunden sind. In diesem Fall wäre es sinnvoll, diese Änderungen in einer Revision zusammenzusetzen.

Versuchen wir, ein neues Feld in der Tabelle TBL_USERS zu erstellen und es E -Mail zu nennen:

<span>git add dbv
</span><span>git commit -m "add dbv into project"</span>

Erstellen Sie als nächstes eine neue Datei in den Daten/Revisionen/1 -Verzeichnis in Ihrer DBV -Installation und geben Sie die von Ihnen gerade ausgeführte Abfrage ein. Nennen Sie die Datei tbl_users.sql. Die Konvention hier verwendet den Namen der geänderten Tabelle als Name für die Revisionsdatei.
Wenn Sie Änderungen an mehr als einer Tabelle vornehmen, erstellen Sie für jede Tabelle eine separate Datei.

Danach können Sie die neue Datei in Ihre Quellensteuerung einlegen:

<span>git push</span>

und schieben Sie es dann in Ihr zentrales Repository:

<span>http://localhost/your_project/dbv</span>

Sie können Ihre Teamkollegen erneut über die jeweilige Änderung informieren. Die Kommunikation ist der Schlüssel, wenn Änderungen an der Datenbank vorgenommen werden. Sie möchten sicherstellen, dass jeder in Ihrem Team auf derselben Seite ist wie Sie.

Wenn sie nun auf DBV aus dem Browser zugreifen, können sie jetzt die Revision sehen. Jetzt müssen sie nur noch das Kontrollkästchen neben der Revision ankreuzen und dann auf die Schaltfläche "Ausgewählte Überarbeitungen ausführen" klicken. Dadurch werden Ihre Änderungen an ihrer lokalen Datenbankkopie festgelegt:

Datenbankversioning mit DBV

Schlussfolgerung

DBV ist eine gute Möglichkeit, Ihre Datenbankversion -Steuerungsanforderungen einfach zu verwalten. Sie und Ihr Team können die in Ihrer Datenbank vorgenommenen Änderungen leicht im Auge behalten. Es ermöglicht auch eine einfache gemeinsame Nutzung Ihrer Änderungen mit dem Rest Ihres Teams durch die Verwendung von Git. Dies stellt sicher, dass immer jeder die neueste Kopie der Datenbank hat.

In diesem Artikel haben wir die Verwendung von DBV mit Git angesehen, aber Sie können jedes Versionskontrollsystem Ihrer Wahl so ziemlich verwenden. Rückmeldung? Bitte lassen Sie es in den Kommentaren unten!

häufig gestellte Fragen zur Datenbankversioning

Was sind die wichtigsten Vorteile der Datenbankversionierung? Erstens liefert es eine historische Aufzeichnung aller Änderungen am Datenbankschema, die zum Debuggen- und Prüfungszwecken hilfreich sein können. Zweitens ermöglicht es eine einfache Rollback von Änderungen bei Fehlern oder Problemen. Drittens erleichtert es die Zusammenarbeit zwischen Teammitgliedern, indem alle mit derselben Version der Datenbank arbeiten. Schließlich hilft es bei der Aufrechterhaltung der Konsistenz und Integrität der Datenbank, insbesondere in einer verteilten Entwicklungsumgebung. des Datenbankschemas. Dies erfolgt normalerweise mit einem Versionskontrollsystem wie Git. Jede Änderung des Datenbankschemas wird als neue Version im Versionskontrollsystem festgelegt. Diese Versionen werden dann verwendet, um das Datenbankschema in verschiedenen Umgebungen (Entwicklung, Test, Produktion usw.) zu aktualisieren. Tools zur Datenbankversionierung verfügbar. Einige der beliebten sind Liquibase, Flyway und DBMAESTRO. Diese Tools bieten Funktionen wie automatisierte Schema -Updates, Rollback -Funktionen und Unterstützung für mehrere Datenbanktypen. Die Auswahl des Tools hängt von den spezifischen Anforderungen und Vorlieben des Entwicklungsteams ab. Erstens erfordert es eine Änderung des Entwicklungsprozesses, die schwierig zu verwalten sein kann. Zweitens erfordert es eine sorgfältige Behandlung von Datenbankmigrationen, um Datenverluste oder Beschädigungen zu vermeiden. Schließlich erfordert es ein gutes Verständnis des Datenbankschemas und der Änderungen, die vorgenommen werden.

Wie kann Datenbankversioning bei der agilen Entwicklung helfen? Die Datenbankversionierung kann dazu beitragen, diese Änderungen effektiv zu verwalten, indem eine historische Aufzeichnung aller Änderungen bereitgestellt, ein leichtes Rollback von Änderungen erleichtert und die Konsistenz in verschiedenen Umgebungen sichergestellt wird. Dies kann die Beweglichkeit und Effizienz des Entwicklungsprozesses erheblich verbessern. (CI/CD) von Datenbankänderungen. Durch die Aufrechterhaltung eines Versionsverlaufs des Datenbankschemas ermöglicht es die automatisierte Bereitstellung von Änderungen in verschiedenen Umgebungen, wodurch die Geschwindigkeit und Effizienz des DevOps -Prozesses verbessert werden.

Ja, Datenbankversioning kann mit Cloud -Datenbanken verwendet werden. Die meisten Datenbankversioning -Tools unterstützen eine Vielzahl von Datenbanktypen, einschließlich Cloud -Datenbanken. Die spezifischen Funktionen und Funktionen können jedoch je nach Tool und Art der Cloud -Datenbank variieren. Datenverwaltung durch Gewährleistung der Integrität und Konsistenz des Datenbankschemas. Es bietet eine historische Aufzeichnung aller Änderungen, die für die Prüfung und Konformitätszwecke nützlich sein können. Es erleichtert auch die Zusammenarbeit und Kommunikation zwischen Teammitgliedern, was für eine effektive Datenverwaltung von wesentlicher Bedeutung ist.

Wie kann die Datenbankversionierung die Datenbankleistung verbessern? Kann dazu beitragen, Leistungsprobleme zu identifizieren, indem sie eine historische Aufzeichnung von Schemaänderungen bereitstellen. Dies kann für das Debuggen und die Leistungsstimmung nützlich sein. Durch die Gewährleistung der Konsistenz und Integrität des Datenbankschemas kann es außerdem indirekt zu einer besseren Datenbankleistung beitragen. Fügen Sie ein Versionskontrollsystem ein, um einen Versionsverlauf des Datenbankschemas zu verwalten; jede Änderung als neue Version festlegen; Testen Sie jede Version vor dem Einsatz gründlich; Verwendung automatisierter Tools für Schema -Updates und Rollbacks; und Aufrechterhaltung einer guten Kommunikation und Zusammenarbeit zwischen Teammitgliedern.

Das obige ist der detaillierte Inhalt vonDatenbankversioning mit DBV. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Komponist -CheatsblattNächster Artikel:Komponist -Cheatsblatt