ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 5 でのデータベース移行について学ぶ

Laravel 5 でのデータベース移行について学ぶ

不言
リリース: 2023-04-01 06:56:01
オリジナル
1352 人が閲覧しました

この記事では、Laravel5 フレームワークの最も強力な機能の 1 つであるデータベース移行について説明します。この記事では、データベース移行の手順と方法を詳しく紹介します。非常に実践的で、困っている友人は参考にしてください。

データベース移行は、laravel の最も強力な機能の 1 つです。データベースの移行は、データベースのバージョン コントローラーとして理解できます。

database/migrations ディレクトリに 2 つの移行ファイルが含まれています。1 つはユーザー テーブルの作成用、もう 1 つはユーザー パスワードのリセット用です。

移行ファイルでは、up メソッドを使用してデータ テーブルを作成し、down メソッドを使用してロールバック、つまりデータ テーブルを削除します。

データベース移行の実行

php artisan migrate
#输出
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table
ログイン後にコピー

mysql データベースを見ると、3 つのテーブルが生成されていることがわかります。 migratoins テーブルは、移行レコード テーブル、ユーザー、および password_resets です。

設計に問題がある場合は、データベースのロールバックを実行してください。

php artisan migrate:rollback
#输出
Rolled back: 2014_10_12_100000_create_password_resets_table
Rolled back: 2014_10_12_000000_create_users_table
ログイン後にコピー

mysql データベースを再度確認すると、移行テーブルのみが残り、ユーザーのpassword_resetsが削除されています。

移行ファイルを変更して、再度移行を実行してください。

新しい移行

php artisan make:migration create_article_table --create='articles'
#输出
Created Migration: 2015_03_28_050138_create_article_table
ログイン後にコピー

データベース/移行の下に新しいファイルが生成されます。

<?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;);
 }

}
ログイン後にコピー

id ​​列は自動的に追加され、timestamps() によって 2 つの時間列 (created_at と updated_at) が自動的に生成されます。いくつかのフィールドを追加しましょう:

 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();
 });
 }
ログイン後にコピー

移行を実行します:

php artisan migrate
ログイン後にコピー

これで、新しいデータ テーブルが作成されました。

新しいフィールドを追加する必要があるとします。ロールバックしてから移行ファイルを変更し、再度移行を実行することも、新しい移行ファイルを直接作成することもできます

php artisan make:migration add_excerpt_to_articels_table
ログイン後にコピー

新しく生成されたファイルを表示する 移行ファイル

<?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()
 {
 //
 }

}
ログイン後にコピー

には空のupメソッドとdownメソッドしかありません。コードを手動で追加することも、Laravel に基本コードを生成させることもできます。このファイルを削除し、移行ファイルを再生成し、パラメータの追加に注意してください:

php artisan make:migration add_excerpt_to_articels_table --table=&#39;articles&#39;
ログイン後にコピー

さて、up メソッドには初期コードがあります。

 public function up()
 {
 Schema::table(&#39;articles&#39;, function(Blueprint $table)
 {
  //
 });
 }
ログイン後にコピー

実際のデータ変更コードを追加します:

 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() はフィールドを表します空にすることもできます。

マイグレーションを再度実行し、データベースを確認してください。

趣味でロールバックを実行すると、

php artisan migrate:rollback
ログイン後にコピー

抜粋列が消えてしまいます。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

Laravel5 フレームワークのサブビューとフォームの再利用の分析

Laravel 4 のページとフォームの検証

#

以上がLaravel 5 でのデータベース移行について学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート