目的
- LaravelとMySQLの組み合わせで「カラムへのNULL格納を許容する」と「デフォルト値をNULLに設定する」方法をまとめる。
実施環境
- ハードウェア環境
項目 | 情報 |
---|---|
OS | macOS Catalina(10.15.5) |
ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
プロセッサ | 2GHzクアッドコアIntel Core i5 |
メモリ | 32 GB 3733 MHz LPDDR4 |
グラフィックス | Intel Iris Plus Graphics 1536 MB |
- ソフトウェア環境
項目 | 情報 | 備考 |
---|---|---|
PHPバージョン | 7.4.3 | Homwbrewを用いて導入 |
Laravelバージョン | 7.0.8 | commposerを用いてこちらの方法で導入→Mac Laravelの環境構築を行う |
MySQLバージョン | 8.0.19 for osx10.13 on x86_64 | Homwbrewを用いてこちらの方法で導入→Mac HomebrewでMySQLをインストールする |
前提条件
- マイグレーションをすることができる状態のLaravelアプリが存在していること。
前提情報
- 本記事では都合上、マイグレーションファイルのカラムに変更を与える処理のみ記載する。
- 本来はマイグレーションファイルの作成、マイグレーションファイルの記載、マイグレーションなどの作業が必要である。
例
- 下記の内容をマイグレーションファイルのupに記載する必要がある。
- マイグレーション後から現在の状態に戻すためのdownの処理も記載する必要がある。
- nullの許容設定のマイグレーションファイルへの記載文を下記に記載する。
// nullを許容したい時
$table->カラムタイプ('カラム名')->nullable()->change();
// nullを許容しない時
$table->カラムタイプ('カラム名')->nullable(false)->change();
- デフォルト値null設定のマイグレーションファイルへの記載文を下記に記載する。
$table->カラムタイプ('カラム名')->default(null)->change();