この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:21
ページ更新者:T
更新日時:2018-05-04 02:35:38

タイトル: テーブルの作成と定義の変更

Laravelのデータベースマイグレーションという機能を使用すればphpファイル上でテーブル定義をすることが出来ます。

 

マイグレーションファイルの作成

Laravelプロジェクトのルートディレクトリで以下のコマンドを実行すると、マイグレーションファイルを作成することが出来ます。

php artisan make:migration ファイル名 --create=テーブル名

以下、実行例です。

php artisan make:migration create_tasks_table --create=tasks

マイグレーションファイルは「database/migrations」に格納されます。

 

テーブルの作成

先ほど作成したマイグレーションファイルの中身を見てみましょう。

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

database\migrations」配下にファイルが新規作成されたことを確認できます。

ファイルの中身を見てみましょう。

 

php artisan migrate

テーブルの作成が完了します。

 

テーブル定義の変更

tasksテーブルにカラムの追加、変更をしてみましょう。

php artisan make:migration update_tasks_table --table=tasks

以下の例ではstring型のnameというカラムを追加しています。

更にidのデータ型を変更します

public function up()
    {
        Schema::
table('tasks', function (Blueprint $table) {

    $table->bigIncrements('id')->change();
            $table->string('name');
        });
    }

upメソッドには定義の追加/変更処理を、downには削除処理を記述します。

 

ファイルを書き換えただけではテーブルの構造は変化しません。

ファイルを保存して以下のコマンドを実行しましょう。

php artisan migrate

 

以下のエラーが発生した場合はこちらを参照。

SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' 

 

定義変更方法の一覧

※随時更新予定

定義できるカラムの型の一覧等はこちらを参照。

 

■桁数の指定

桁数指定できるカラムは以下の様に定義する。(以下の例はvarchar100桁)

$table->string('name', 100);

 

■カラム名の変更

$table->renameColumn('from', 'to');