- Laravel
[Laravel] マイグレーションについて(基本)
Laravelのインストール、初期設定も終わったので、次はデータベースにテーブルを作成してみます。
テーブルの作成にはmigrate(マイグレート)という処理を行います。
migrationファイルの作成
プロジェクトのルート(artisanファイルがある場所)で下記のコマンドを実行
php artisan make:migration create_テーブル名_table
※テーブル名は複数形で作成します。
user -> users といったように。
ちなみにモデルも一緒に作成したい場合には、下記のようにコマンドを実行しましょう。
php artisan make:model モデル名 -m
最後の -m の部分がマイグレーションファイルも一緒に作成するよ、という意味になります。
さて、コマンドを実行しうまく実行ができていれば、
database/migrationsディレクトリ配下に「2023_xx_xx_xxxxxx_create_テーブル名_table.php」
というファイルが出来上がっているはずです。
作成されたmigrationファイルの記述
例えばcompaniesという名前でマイグレーションファイルを作成した場合には、初期では下記のようにファイルが作成されていると思います。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('companies', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('companies');
}
};
上記のupメソッドの中に、カラムを設定します。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('companies', function (Blueprint $table) {
$table->id();
$table->string('name')->comment('企業名');
$table->string('post_code')->comment('郵便番号');
$table->string('address')->comment('住所');
$table->string('tel')->comment('電話番号');
$table->string('ceo_name')->comment('代表者名');
$table->text('note')->comment('備考')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('companies');
}
};
上記の例で行くと、企業名、郵便番号、住所、電話番号、代表者名、備考といったカラムが追加されることになります。
->stringや->textの部分でデータベースへの型を指定
('name')や('post_code')はカラム名を設定しています。
今回の型指定は文字列だけですが、他にも型の指定ができます。
詳細は下記URLの「利用可能なカラムタイプ」という項目をご覧ください。
https://readouble.com/laravel/8.x/ja/migrations.html
テーブルの作成
ファイルの記述が終わったら、マイグレートという処理をして、データベースにテーブルを作成します。
ターミナルから下記を実行すれば、自動で作成してくれます。
php artisan migrate
下記のコマンドで、現在のマイグレートの状況を確認することもできます。
php artisan migrate:status
以上がマイグレーションの手順となります。
マイグレーションがうまくいかない時は、おそらく.envファイルの記述に不備があり、データベースとの連携がうまくいってない可能性があります。
MAMPでの初期設定の方法については下記の記事でも書いてますので、参考にしていただければと思います。
https://from-forties.net/laravel-install/
それでは〜!