マイグレーションでテーブルを作成する
今回はLaravelで勉強したテーブル作成についてまとめます。
マイグレーションファイルの作成
マイグレーションファイルとはテーブル定義に対する変更内容が書かれているファイル
//booksというテーブルを作成します
$php artisan make:migration create_books_table --create=books
Migrationクラスを継承したCreateBookTableクラスが自動で作成される
<php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('books', function (Blueprint $table) {
$table->increments('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('books');
}
make:migrationした時に指定した名前がキャメルケースに変換されクラス名になります。
マイグレーションファイルはup()メソッドとdown()メソッドを持っていて
up()メソッドの中のSchema::createはテーブル作成処理が、
down()メソッドの中のSchema::dropifExistsはテーブルの削除処理が入っています。
public function up()
{
Schema::create('books', function (Blueprint $table) {
$table->increments('id');
$table->string(‘bookName’);
$table->string(‘bookNameKana’);
$table->string(‘authorName’);
$table->timestamps();
});
}
今回は本の名前、カナ、著者名のカラムを追加しました。
マイグレーションを実行
$php artisan migrate
DBに対してDDLを発行します。
コマンドが成功すると、指定したテーブルとmigrationsという2つのテーブルが作成されます。
※注意
マイグレーションファイルを実行した後にファイルを変更し、実行しても
修正することはできません。間違えた場合はロールバックを行なって変更や修正を行います。
ロールバック
ロールバックとはマイグレーションの内容を元に戻すことです。
マイグレーションを実行した時に間違えてしまった…っという時は
ロールバックを行い1度テーブルをdropして新しいテーブルを作成します。
//直近のマイグレーションのdownメソッドを実行する
$php artisan migrate:rollback
マイグレーションでテーブルを変更する方法
マイグレーションでテーブルを変更する方法は2種類あります。
①ロールバックを行いマイグレーションファイルに項目を追加してから、再度マイグレーションを実行する。
②項目追加用のマイグレーションファイルを作成しマイグレーションを実行する。
今回は深く記述しませんが(私がまだきちんと理解できていない…)
②の方法で行う時のファイル作成のコマンドはこちらになります
$php artisan make:migration add_publised_at_to_books_table --table=books
ご覧いただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?