Edited at

Laravel(v.5.5) - Database: Migrations

More than 1 year has passed since last update.


見たやつ

mySQLの型

Laravelのmigrationでハマったときに見たやつ

ER図をSequelが吐き出したdotファイルからgraphvisで作成する


Laravel以前にDB知識で知らなかったこと


  • varcharはcharと違って、足りない文字数を空白埋めしない

  • リレーションは同じ型じゃないと貼れない(intとmediumintとかはムリ)


やったとこ

https://laravel.com/docs/5.5/migrations#creating-columns


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

テーブル作成するときも、テーブル更新するときもphp artisan make:migrationコマンドで作成。

Laravel側がマイグレーションファイルの更新を管理してるので、前のマイグレーションに巻き戻したりとかも出来るらしい。

make:migrationコマンドのオプションでcreateとtableってのがあって、これはテーブル名を指定するもの。

恐らくこれで紐付けて、マイグレーションファイルの更新を管理してる。

更新管理履歴?が書き込まれてるファイルは


  • vendor/composer/autoload_classmap.php

  • vendor/composer/autoload_static.php


テーブル作成の場合

php artisan make:migration [file_name] --create [table_name]

これやるとdatabase/migration内にタイムスタンプ付きのファイルが生成される。

テーブル作成のコードの書き方はココ見ればおk。

up関数内をいじる。


テーブル更新の場合

php artisan make:migration [file_name] --table [table_name]

これも同じ。まだやってないけどたぶんそう。


マイグレーション

php artisan migration

これで作ったマイグレーションファイルを全部実行(たぶん)。

エラー出たりミスったときは

php artisan migrate:reset

でテーブルを削除できる。

でもエラーが起きたマイグレーションファイルのテーブルは中途半端になってるのかこれじゃ削除できないので手動で消した。


リレーションでハマったところ

int型とmediumint型で外部キー設定しようとしたら出来なかった。

型は揃えよう。

Laravelのmigrationでハマったときに見たやつ

に書いてあった

$table->engine = 'InnoDB';

とか

$table->string('id')->unique();

は俺の時は関係なかった。

とりあえずマイグレーションまで終わった。

ネクスト