Laravelでマイグレーションを使ってテーブルを作るには、artisanコマンドでマイグレーションを実行します。
まずは「php artisan make:migration マイグレーションファイル名 –create=テーブル名」でマイグレーションファイルを作ります。
php artisan make:migration create_sample_table --create=sample
上記のコマンドを実行すると、「database/migrations/2020_04_12_050731_create_sample_table.php」というファイル名が自動的に作られます。
ファイル名の「 2020_04_12_050731」の部分はコマンドを実行した日時が自動的に入ります。
database/
┗ migrations/
┗ 2020_04_12_050731_create_sample_table.php
ファイルの中は以下のようになっています。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateSampleTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('sample', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('sample');
}
}
新しいテーブルを作るための最低限のコードが自動生成されています。
up()メソッドはマイグレーションが実行された時にテーブルを作る機能が実装されています。
down()メソッドはマイグレーションのロールバックを実行した時にテーブルを削除する機能が実装されています。
テーブル作成時のカラムを追加したい場合は、up()メソッドを修正します。
public function up()
{
Schema::create('sample', function (Blueprint $table) {
$table->bigIncrements('id');
// ここでカラムを追加する。
$table->bigInteger('user_id');
$table->string('sample_value');
$table->timestamps();
});
}
「$table->bigInteger(‘user_id’);」で、bigint型のuser_idという名前のカラムを追加します。
「$table->string(‘sample_value’);」は文字列(varchar)型のsample_valueという名前のカラムを追加します。
マイグレーションファイルを作ったら、「php artisan migrate」コマンドを実行することでテーブルが作られます。
php artisan migrate
Laravelでデータベースにテーブルを追加する方法は以上です。
逆引きLaravel目次
Laravelでルートパラメータ(パスパラメータ)を取得する
LaravelでフォームのMethodをPUTやDELETEに変える
Laravelでフォームリクエストの型を定義してバリデーションする
Laravelのコントローラのアクションでモデル型を受け取る(モデル結合ルート)
LaravelでCookie(クッキー)の取得、書き込み、削除をする
Laradock
Laradockのworkspaceの共有ディレクトリを変更する
データベース
Laravelでデータベースのテーブル名を変更する(マイグレーション)
Laravelでデータベースのテーブルにカラムを追加する(マイグレーション)
Laravelで指定したカラムの次にカラムを追加する(マイグレーション)
Laravelでテーブルのカラム名を変更する(マイグレーション)
Laravelのmigrationでテーブルにunique制約を追加する
ルーティング
Laravelで特定のプレフィックスがついたURLのルーティングをまとめて定義する
ミドルウェア
認証
Laravelで未ログインユーザーがアクセスしたらログインフォームを表示する
LaravelのViewでログイン状態によって表示切替する方法