この記事では、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('articles', function(Blueprint $table) { $table->increments('id'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('articles'); } }
id 列は自動的に追加され、timestamps() によって 2 つの時間列 (created_at と updated_at) が自動的に生成されます。いくつかのフィールドを追加しましょう:
public function up() { Schema::create('articles', function(Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('body'); $table->timestamp('published_at'); $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='articles'
さて、up メソッドには初期コードがあります。
public function up() { Schema::table('articles', function(Blueprint $table) { // }); }
実際のデータ変更コードを追加します:
public function up() { Schema::table('articles', function(Blueprint $table) { $table->text('excerpt')->nullable(); }); } public function down() { Schema::table('articles', function(Blueprint $table) { $table->dropColumn('excerpt'); }); }
nullable() はフィールドを表します空にすることもできます。
マイグレーションを再度実行し、データベースを確認してください。
趣味でロールバックを実行すると、
php artisan migrate:rollback
抜粋列が消えてしまいます。
上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
Laravel5 フレームワークのサブビューとフォームの再利用の分析
#
以上がLaravel 5 でのデータベース移行について学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。