Heim >Backend-Entwicklung >PHP-Tutorial >Datenbankversioning mit DBV
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.
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.
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.
umbenennenDie 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>
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:
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:
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:
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:
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.
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:
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!
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!