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のDBについて(マイグレーション、tinkerなど)

Last updated at Posted at 2022-04-15

マイグレーション(Migration)とは

データベースのテーブルを作成、編集、削除などデータベースの履歴を管理するものです。

マイグレーション作成

マイグレーション作成コマンドを紹介していきます。

$ php artisan make:migration [migration_name]

モデル作成

$ php artisan make:model Models/モデル名 -m

マイグレーションファイルも同時作成。  -cだとControllerです。

公式ページにも載っています。
https://laravel.com/docs/5.2/migrations#generating-migrations

マイグレーションとモデルの注意

モデル名は単数形マイグレーション名は複数形になるので注意してください。

作成したテーブルを触る

マイグレーションを作成したら、こんな下のようになります。
作成したマイグレーションに文字長を指定した場合は

<?php

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

class CreateTestsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('tests', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('text', 100); //追記 これを指定 textを追記
            $table->timestamps();
        });
    }

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

これでmigrationを実行しデータベースに反映させます。

$ php artisan migrate

テーブル作成

$ php artisan make:migration create_users_table --create=users
$ php artisan make:migration create_テーブル名_table --create=テーブル名名

すでにusersというテーブルがあって、そこに新しいvotesというカラムを追加する場合

$ php artisan make:migration add_votes_to_users_table --table=users
$ php artisan make:migration add_追加したいカラム_to_users_table --table=テーブル名

マイグレーション状況確認

 $ php artisan migrate:status

マイグレーションを元に戻すロールバック

$ php artisan migrate:rollback

数字の数の分だけロールバックします。

$ php artisan migrate:rollback --step=数字

 
全部ロールバックしてからマイグレーションし直す

$ php artisan migrate:refresh

一旦全てのテーブルを削除してマイグレーションし直す

$ php artisan migrate:fresh

クエリを表示するだけでマイグレーションはしない

$ php artisan migrate --pretend
$ php artisan migrate:rollback --pretend

日本語の公式サイト

公式サイトは目を通した方がいいです。

マイグレーションのサイトです。

tinker

tinkerを使うと、データベースを簡単に触れるようになります。

 $  php  artisan tinker

//Psy Shell v0.11.2 (PHP 8.0.8 — cli) by Justin Hileman
//>>> 

モデル作成

$user = new App\Models\User;
=> App\Models\User {#3347}

作成

>>> $test->$text = "ポチ";
=> "ポチ"

保存

$test->save();
=> true
 App\Models\Test::all(); //これで中身が見れる
=> Illuminate\Database\Eloquent\Collection {#4070
     all: [
       App\Models\Test {#4069
         id: 1,
         text: "ポチ",
         created_at: "2022-04-15 13:43:32",
         updated_at: "2022-04-15 13:43:32",
       },
     ],
   }

php adminなどで確認するとデータベースができています。

もう一つ作成してみます。

新規作成

>>> $test_test = new App\Models\Test;
=> App\Models\Test {#3346}
>>> $test_test->text = "ポン太";  //textカラムに入力
=> "ポン太"
>>> $test_test->save(); //保存
=> true

確認

>>> App\Models\Test::all();
=> Illuminate\Database\Eloquent\Collection {#4278
     all: [
       App\Models\Test {#4279
         id: 1,
         text: "ポチ",
         created_at: "2022-04-15 13:43:32",
         updated_at: "2022-04-15 13:43:32",
       },
       App\Models\Test {#4280
         id: 2,
         text: "ポン太",
         created_at: "2022-04-15 13:51:00",
         updated_at: "2022-04-15 13:51:00",
       },
     ],
   }

有益そうなtinkerの資料

参考資料

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?