Heim  >  Artikel  >  Backend-Entwicklung  >  Erfahren Sie mehr über die Datenbankmigration in Laravel 5

Erfahren Sie mehr über die Datenbankmigration in Laravel 5

不言
不言Original
2018-06-13 17:16:241328Durchsuche

Dieser Artikel stellt Ihnen Datenbankmigrationen vor, eine der leistungsstärksten Funktionen im Laravel5-Framework. Dieser Artikel stellt die Schritte und Methoden der Datenbankmigration im Detail vor. Er ist sehr praktisch und Freunde in Not können darauf zurückgreifen.

Datenbankmigrationen sind eine der leistungsstärksten Funktionen von Laravel. Die Datenbankmigration kann als Versionskontrolle für die Datenbank verstanden werden.

Enthält zwei Migrationsdateien im Verzeichnis „database/migrations“, eine zum Erstellen der Benutzertabelle und eine zum Zurücksetzen des Benutzerkennworts.

In der Migrationsdatei wird die Up-Methode zum Erstellen der Datentabelle und die Down-Methode zum Rollback, also zum Löschen der Datentabelle, verwendet.

Datenbankmigration ausführen

php artisan migrate
#输出
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table

Wenn Sie sich die MySQL-Datenbank ansehen, können Sie sehen, dass drei Tabellen generiert wurden. Die migratoins-Tabelle ist die Migrationsdatensatztabelle, Benutzer und pasword_resets.

Wenn es ein Problem mit dem Design gibt, führen Sie ein Datenbank-Rollback durch

php artisan migrate:rollback
#输出
Rolled back: 2014_10_12_100000_create_password_resets_table
Rolled back: 2014_10_12_000000_create_users_table

Sehen Sie sich die MySQL-Datenbank erneut an, nur die Migrationstabelle ist übrig und die Benutzerpasswort_resets wurden gelöscht.

Ändern Sie die Migrationsdatei und führen Sie die Migration erneut durch.

Neue Migration

php artisan make:migration create_article_table --create='articles'
#输出
Created Migration: 2015_03_28_050138_create_article_table

Unter Datenbank/Migrationen wurde eine neue Datei generiert.

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateArticleTable extends Migration {

 /**
 * Run the migrations.
 *
 * @return void
 */
 public function up()
 {
 Schema::create(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->increments(&#39;id&#39;);
  $table->timestamps();
 });
 }

 /**
 * Reverse the migrations.
 *
 * @return void
 */
 public function down()
 {
 Schema::drop(&#39;articles&#39;);
 }

}

Die ID-Spalte wird automatisch hinzugefügt und wächst automatisch. timestamps() generiert automatisch zwei Zeitspalten: erstellt_at und aktualisiert_at. Fügen wir einige Felder hinzu:

 public function up()
 {
 Schema::create(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->increments(&#39;id&#39;);
      $table->string(&#39;title&#39;);
      $table->text(&#39;body&#39;);
      $table->timestamp(&#39;published_at&#39;);
  $table->timestamps();
 });
 }

Führen Sie die Migration aus:

php artisan migrate

Jetzt haben wir eine neue Datentabelle.

Angenommen, wir müssen ein neues Feld hinzufügen, können Sie ein Rollback durchführen, dann die Migrationsdatei ändern und die Migration erneut durchführen, oder Sie können direkt eine neue Migrationsdatei erstellen

php artisan make:migration add_excerpt_to_articels_table

Sehen Sie sich die neu generierte Migrationsdatei

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AddExcerptToArticelsTable extends Migration {

 /**
 * Run the migrations.
 *
 * @return void
 */
 public function up()
 {
 //
 }

 /**
 * Reverse the migrations.
 *
 * @return void
 */
 public function down()
 {
 //
 }

}

an, die nur leere Auf- und Ab-Methoden enthält. Wir können den Code manuell hinzufügen oder Laravel den Basiscode für uns generieren lassen. Löschen Sie diese Datei, generieren Sie die Migrationsdatei neu und fügen Sie die Parameter hinzu:

php artisan make:migration add_excerpt_to_articels_table --table=&#39;articles&#39;

Jetzt gibt es anfänglichen Code in der up-Methode.

 public function up()
 {
 Schema::table(&#39;articles&#39;, function(Blueprint $table)
 {
  //
 });
 }

Aktuellen Datenänderungscode hinzufügen:

 public function up()
 {
 Schema::table(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->text(&#39;excerpt&#39;)->nullable();
 });
 }
 
 public function down()
 {
 Schema::table(&#39;articles&#39;, function(Blueprint $table)
 {
  $table->dropColumn(&#39;excerpt&#39;);
 });
 }

nullable() stellt das Feld dar Kann auch leer sein.

Führen Sie die Migration erneut aus und überprüfen Sie die Datenbank.

Wenn wir nur zum Spaß einen Rollback machen

php artisan migrate:rollback

Auszugsspalte ist weg.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Analyse von Unteransichten und Formularwiederverwendung des Laravel5-Frameworks

Seiten und Formulare von Laravel 4 Verify

Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über die Datenbankmigration in Laravel 5. 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