Inhaltsverzeichnis
Migrationsgrundlagen
Benennungskonvention für Migrationsdateien
Migrationen vorwärts und rückwärts ausführen
Heim PHP-Framework Laravel Einfache Analyse der Datenbank und Datenbankmigration im Laravel-Framework

Einfache Analyse der Datenbank und Datenbankmigration im Laravel-Framework

Jul 31, 2018 pm 04:41 PM
laravel框架

Die Entwicklungsmethode des Laravel-Frameworks ist agil und iterativ, und Sie erwarten nicht, dass Sie beim ersten Mal den gesamten richtigen Code erhalten. Stattdessen schreiben wir Code, testen und interagieren mit unseren Endbenutzern und verfeinern unser Verständnis.

Für die Arbeit brauchen wir eine Reihe unterstützender Praktiken. Wir verwenden Versionskontrolltools wie Subversion, GIT oder Mercurial, um die Quellcodedateien der Anwendung zu speichern, sodass wir Fehler rückgängig machen und Änderungen während der Entwicklung verfolgen können.

Aber wenn sich Anwendungen ändern, gibt es Bereiche, die wir mit der Versionskontrolle allein nicht effektiv verwalten können. Im Laufe unserer Entwicklung entwickelte sich das Datenbankschema der Laravel-Anwendung weiter: Wir fügten hier eine Tabelle hinzu, benannten dort Spalten um, ließen Indizes fallen und so weiter. Datenbankänderungen werden im Gleichschritt mit dem Anwendungscode vorgenommen.

Sie benötigen eine ausgefeilte Möglichkeit, Ihre Datenbankschemaänderungen zu verfolgen. Normalerweise gibt es mehrere Ansätze:

  • Wenn Sie in einem Entwicklungsteam arbeiten, muss jeder darüber Bescheid wissen etwaige Schemaänderungen.

  • Wenn Sie auf einem Produktionsserver bereitstellen, benötigen Sie eine robuste Möglichkeit, Ihr Datenbankschema zu aktualisieren.

  • Wenn Sie auf mehreren Computern arbeiten, müssen Sie alle Datenbankschemata synchron halten.

Die Synchronisierung des Datenbankschemas mit dem Anwendungscode war in der Vergangenheit eine sehr mühsame Aufgabe, ohne dass Anwendungsentwickler strenge Konventionen und Disziplinen befolgen mussten. Der Entwickler (oder Datenbankadministrator) nimmt die erforderlichen Schemaänderungen vor. Wenn der Anwendungscode jedoch auf eine frühere Version zurückgesetzt wird, ist es schwierig, die Änderungen am Datenbankschema rückgängig zu machen, was dazu führt, dass die Datenbankversionsinformationen nicht mit den Versionsinformationen des Anwendungscodes übereinstimmen.

Mit der Migration unterstützt Laravel Sie bei der Weiterentwicklung der Datenarchitektur Ihrer Anwendung, ohne dass Sie die Datenbank jedes Mal löschen oder neu erstellen müssen, wenn Sie eine Änderung vornehmen. Kein Löschen und erneutes Erstellen bedeutet, dass Sie nicht bei jeder Änderung Daten verlieren. Die einzige Änderung bei einer Migration besteht darin, das Datenbankschema von einer Version in eine andere zu verschieben, unabhängig davon, ob vorwärts oder rückwärts.

Die Laravel-Migration bietet Ihnen die Möglichkeit, das Datenbankschema iterativ zu ändern. Sie erfordert keine Verwendung von SQL-Operationen, ermöglicht Ihnen jedoch die Verwendung von PHP-Code. Mit dem Laravel-Schemagenerator können wir schnell Datenbanktabellen erstellen und Spalten oder Indizes einfügen. Es verwendet eine saubere und ausdrucksstarke Syntax zum Bearbeiten von Datenbanken. Sie könnten denken, dass die Laravel-Migration eine Versionskontrolle Ihrer Datenbank ist.

Durch die Definition einer übergeordneten Schnittstelle zum Erstellen und Verwalten von Datenbankschemata können Sie diese datenbankunabhängig definieren. Indem Sie PHP verwenden, um Tabellen zu erstellen, Spalten und Indizes zu definieren, das Schema einmal zu schreiben und es auf jedes unterstützte Datenbank-Backend anzuwenden. Als zusätzlichen Bonus verfolgt Laravel, welche Migrationen angewendet wurden und welche noch angewendet werden müssen.

Migrationsgrundlagen

Eine Laravel-Migration ist lediglich eine PHP-Quelldatei im Verzeichnis app/database/migrations Ihrer Anwendung. Jede Datei enthält eine Reihe von Änderungen an der zugrunde liegenden Datenbank. Änderungen an der Datenbank werden im PHP-Code und nicht im datenbankspezifischen SQL vorgenommen. Ihr PHP-Migrationscode wird letztendlich in DDL konvertiert, das zu Ihrer aktuellen Datenbank passt, was den Wechsel der Datenbankplattform sehr einfach macht. Da der Migrationscode in einem eigenen Verzeichnis gespeichert wird, muss er wie anderer Projektcode in die Versionskontrolle einbezogen werden. Laravel-Migrationen werden explizit über die Befehlszeile mit Artisan-Tools ausgeführt.

Benennungskonvention für Migrationsdateien

In älteren Versionen von Laravel haben migrierte Dateien einfachere Namen, wie zum Beispiel 001_create_employees_table.php. Laravel 3 (Laravel 4.1 und gleich) brachte eine neue Namenskonvention mit sich, bei der sich der erste Teil des Namens von einer Sequenznummer in etwas Längeres änderte, wie 2014_03_11_032903_create_employees_table.php. Der Dateiname hat die Form YYYY_MM_DD_HHMMSS_some_meaningful_name.php, was einen identifizierten UTC-Zeitstempel gefolgt von einem Migrationsnamen bedeutet.

Die neuen, umfassenderen Namen helfen, Namenskonflikte zu vermeiden, und wenn Sie als Entwickler in einem Team arbeiten, können Sie Ihre eigenen Migrationen überprüfen.

Darüber hinaus migriert Laravel die Zeitstempel von Dateien, sodass diese nacheinander ausgeführt werden können. Zeitstempelnummern sind für Migrationen von entscheidender Bedeutung, da sie festlegen, welche Migration in der Reihenfolge angewendet wird, in der die einzelnen Migrationsversionsnummern angewendet werden.

Migrationen werden wie SQL-Skripte von oben ausgeführt, was die Ausführung dieser Dateien erfordert. Durch die sequentielle Ausführung entfällt die Möglichkeit, Spalten einzufügen, wenn die Tabelle nicht vorhanden ist.

Obwohl Sie Migrationsdateien manuell erstellen können, ist es einfacher (und weniger fehleranfällig), Artisan-Tools zum Generieren von Migrationsskripten zu verwenden. Sie können diese Dateien später bei Bedarf bearbeiten.

Migrationen vorwärts und rückwärts ausführen

Verwenden Sie Artisan-Tools, um zur Datenbank zu migrieren. Laravel bietet eine Reihe handwerklicher Aufgaben, die sich auf die Durchführung einer bestimmten Reihe von Migrationen beschränken.

[Hinweis]Sie können die Handwerkerliste ausführen, um die Liste der vom Handwerker unterstützten Aufgaben anzuzeigen . Den meisten Aufgaben im Zusammenhang mit der Datenmigration wird migrate: vorangestellt.

Es gibt nur ein paar allgemeine Aufgaben, die Sie kennen müssen:

  • migrate:install
    Die erste migrationsbezogene Handwerksaufgabe, die Sie verwenden können, ist migrate:install. Intern verwendet Laravel spezielle Tabellen, um zu verfolgen, welche Migrationen ausgeführt wurden. Um diese Tabelle zu erstellen, verwenden Sie einfach das artisan-Befehlszeilentool:
    $php artisan migrate:install

  • migrate
    Sie führen die Migrationsaufgabe aus, um die Datenbank Ihrer Tabelle regelmäßig zu aktualisieren um die neuesten Tabellen und Spalten zu unterstützen, die Sie Ihrer Anwendung hinzufügen. In seiner einfachsten Form führt es die up()-Methode nur bei allen Migrationen aus, die noch nicht ausgeführt wurden. Wenn es keine solche Migration gibt, wird es beendet. Diese Migrationen werden basierend auf dem Datum ausgeführt, an dem sie migriert wurden.

  • migrate:rollback
    Beim Schreiben von Migrationen machen Sie gelegentlich Fehler. Wenn Sie die Migration bereits ausgeführt haben, können Sie die Migration nicht einfach bearbeiten und erneut ausführen: Laravel geht davon aus, dass die Migration bereits ausgeführt wurde, also wenn Sie artisan erneut ausführen migrieren, bringt nichts. Sie müssen Handwerker verwenden migrate:rollback setzt die Migration zurück, bearbeitet sie dann und führt dann artisan aus migrieren, um die richtige Version auszuführen.

Im Allgemeinen ist das Bearbeiten einer bestehenden Migration keine gute Idee: Es erfordert zusätzliche Arbeit für Sie und Ihre Kollegen und es wird Kopfschmerzen bereiten, wenn die Migration bestehender Versionen bereits läuft an Produktionsmaschinen. Stattdessen müssen Sie eine neue Migration schreiben, um die erforderlichen Änderungen durchzuführen.

[Hinweis]Handwerker migrate:rollback löscht die letzte Migrationsanwendung. Laravel geht auf die gesamte Migrations-„Operation“ zurück. Wenn der letzte Migrationsbefehl daher 15 Migrationen ausgeführt hat, werden alle 15 Migrationen zurückgesetzt. Bitte beachten Sie, dass beim Löschen einer Spalte oder Tabelle Daten verloren gehen.

migrate:reset
Alle Migrationen rückgängig machen (alle Tabellen und Daten werden gelöscht)

migrate:refresh
artisan migrate:refresh task löscht die Datenbank und erstellt sie neu lädt das aktuelle Schema. Dies ist eine praktische Verknüpfung, um einen Reset durchzuführen und anschließend alle Migrationen erneut auszuführen.

migrate:make
artisan migrate:make Befehl erzählt Laravel, um ein Migrationsdateiskelett zu generieren (das eigentlich eine PHP-Datei) und speichern Sie sie im Ordner app/database/migrations. Anschließend können Sie diese Datei bearbeiten, um Ihre Tabellen-/Indexdefinitionen zu konkretisieren. Dann, Handwerker Wenn der Migrationsbefehl ausgeführt wird, fragt Artisan diese Datei ab, um sie zu generieren Tatsächlicher Code für SQL DDL.

Verwandte Empfehlungen:

So verbinden Sie Laravel5 über Freetds (Code) mit SQL Server

Das obige ist der detaillierte Inhalt vonEinfache Analyse der Datenbank und Datenbankmigration im Laravel-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie baue ich eine erholsame API mit fortgeschrittenen Funktionen in Laravel? Wie baue ich eine erholsame API mit fortgeschrittenen Funktionen in Laravel? Mar 11, 2025 pm 04:13 PM

Dieser Artikel führt dazu, dass robuste Laravel -Rastful -APIs aufgebaut werden. Es deckt Projekt -Setup, Ressourcenverwaltung, Datenbankinteraktionen, Serialisierung, Authentifizierung, Autorisierung, Testen und Best Practices für die wichtige Sicherheitssicherheit ab. Skalierbarkeit Chall

Laravel Framework Installation Neueste Methode Laravel Framework Installation Neueste Methode Mar 06, 2025 pm 01:59 PM

Dieser Artikel bietet einen umfassenden Leitfaden zur Installation des neuesten Laravel -Frameworks mit Composer. Es werden Voraussetzungen, Schritt-für-Schritt-Anweisungen, Fehlerbehebung bei Problemen mit allgemeinen Installation (PHP-Version, Erweiterungen, Berechtigungen) und Minimu beschrieben

Laravel-Admin Menüverwaltung Laravel-Admin Menüverwaltung Mar 06, 2025 pm 02:02 PM

Dieser Artikel führt Laravel-Admin-Benutzer in der Menüverwaltung. Es deckt Menüanpassung, Best Practices für große Menüs (Kategorisierung, Modularisierung, Suche) und dynamische Menügeneration ab, basierend auf Benutzerrollen und Berechtigungen mit dem Autor von Laravel

Wie implementieren Sie OAuth2 -Authentifizierung und -autorisierung in Laravel? Wie implementieren Sie OAuth2 -Authentifizierung und -autorisierung in Laravel? Mar 12, 2025 pm 05:56 PM

In diesem Artikel werden die Authentifizierung und Autorisierung von OAuth 2.0 in Laravel implementiert. Es umfasst die Verwendung von Paketen wie League/OATH2-Server oder providerspezifischer Lösungen, wobei die Datenbank-Setup, die Client-Registrierung und die Autorisierungsserverkonfigurus betont werden

Welche Version von Laravel ist die beste Welche Version von Laravel ist die beste Mar 06, 2025 pm 01:58 PM

Dieser Artikel führt Laravel -Entwickler bei der Auswahl der richtigen Version. Es wird betont, wie wichtig es ist, die neueste Version für Long -Soldat Support (LTS) für Stabilität und Sicherheit auszuwählen und gleichzeitig anzuerkennen, dass neuere Versionen erweiterte Funktionen bieten.

Wie kann ich in Laravel benutzerdefinierte Validierungsregeln erstellen und verwenden? Wie kann ich in Laravel benutzerdefinierte Validierungsregeln erstellen und verwenden? Mar 17, 2025 pm 02:38 PM

In dem Artikel wird das Erstellen und Verwenden von benutzerdefinierten Validierungsregeln in Laravel erläutert und bietet Schritte zur Definition und Implementierung. Es zeigt Vorteile wie Wiederverwendbarkeit und Spezifität und bietet Methoden zur Erweiterung des Laravel -Validierungssystems.

Was sind die besten Praktiken für die Verwendung von Laravel in einer Cloud-nativen Umgebung? Was sind die besten Praktiken für die Verwendung von Laravel in einer Cloud-nativen Umgebung? Mar 14, 2025 pm 01:44 PM

In dem Artikel werden Best Practices für die Bereitstellung von Laravel in Cloud-nativen Umgebungen erörtert und sich auf Skalierbarkeit, Zuverlässigkeit und Sicherheit konzentriert. Zu den wichtigsten Problemen gehören Containerisierung, Microservices, staatenlose Design- und Optimierungsstrategien.

Wie verwende ich die Komponenten von Laravel, um wiederverwendbare UI -Elemente zu erstellen? Wie verwende ich die Komponenten von Laravel, um wiederverwendbare UI -Elemente zu erstellen? Mar 17, 2025 pm 02:47 PM

In dem Artikel wird das Erstellen und Anpassen wiederverwendbarer UI -Elemente in Laravel mithilfe von Komponenten ermittelt, die Best Practices für die Organisation anbieten und Vorschläge für Verbesserungspakete vorschlagen.

See all articles