LoginSignup
0
0

More than 5 years have passed since last update.

Laravel(v.5.5) - Database: Migrations

Last updated at Posted at 2017-10-11

見たやつ

mySQLの型
Laravelのmigrationでハマったときに見たやつ
ER図をSequelが吐き出したdotファイルからgraphvisで作成する

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

  • varcharはcharと違って、足りない文字数を空白埋めしない
  • リレーションは同じ型じゃないと貼れない(intとmediumintとかはムリ)

やったとこ

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

テーブル作成するときも、テーブル更新するときも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();

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

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

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