0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Laravel】-初学者向け マイグレーションについて

Posted at

今回は、初学者向けでマイグレーションについて、記事を書いていこうと思います。

Laravelのマイグレーションとは?

Laravelのマイグレーション とは?
⇒DBテーブルの作成や編集、削除などの履歴管理をするものがLaravelには備わっています。

ファイルの作成

ファイルの作成するには、コマンドプロンプトを開き、下記のコマンドをたたきます。

php artisan make:migration create_「テーブル名」_table

■例

php artisan make:migration create_tests_table

make:migration …複数で作成する場合、migrationとなる
tests …ファイル名も「tests」複数形になる

下記パスにファイルが生成されます。

databases/migrations 

image.png

※マイグレーションファイルは、履歴管理の仕組みもあり、年月日時間の情報もファイルの中に記載されております。

ファイルの編集

下記がファイルの中身の詳細となります。
「up」の中身にカラムを記載することができます。
例えば、カラム名「text」を追加したいときに「$table->string(text);」のコードを追記することで、テーブルにカラムを追加することができます。

■ファイルの中身(修正前)

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('posts');
    }
};

■ファイルの中身(修正後)

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('text');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('posts');
    }
};

処理を追加した後に、コマンドプロンプトに戻り、下記のコマンドをたたきます。

php artisan migrate

■結果
Xamppを起動させ、phpMyAdminから確認すると
image.png
「text」がカラムとして追加されています。

テーブルの削除と再生成

下記のコマンドはテーブルのすべてを削除するコマンドです。
※※削除コマンドを使用する際は必ず注意しましょう。

  • テーブルを全て削除し再生成
php artisan migrate:fresh
  • ロールバックして再生成
php artisan migrate:refresh

モデル・マイグレーションの同時作成

コマンドプロントを開き、
オプションで「-m」をつけることでモデルと「ContactForm」というマイグレーションも同時作成がされます。

php artisan make:model ContactForm -m

■結果
下記パスに2つのファイルが生成されます。
・パス

app/Models/ContactForm

・パス

app/database/migrations

・ファイル名:xxx_create_contact_forms.php

 public function up() 
    {   Schema::create('contact_forms', function (Blueprint $table) { 
            $table->id();  
            $table->timestamps(); }); 

まとめ

Laravelのマイグレーションには、いろんな機能が備わっており、データベースの操作やカラムの追加、削除などが可能です。
削除コマンドや一括削除コマンドを使うには、必ず注意が必要ですので、たたく前は気を付けましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?