はじめに
実務で遭遇したので今後の備忘録として書きます。
バージョン
- PHP: 8.2
- Laravel: 11
- MySQL: 8.3
経緯
DBマイグレーションを実行したときに下記エラーが発生しました。
$ php artisan migrate
PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 12288 bytes) in ...
原因と対策
調べてみると、phpのメモリ制限をオーバーしかけたとのことでした。
php.ini内のmemory_limitの値(デフォルトは128M)を変更することで解決できます。
php.ini
memory_limit=128M → -1(無制限)に変更
$ php -i | grep memory_limit
memory_limit => -1 => -1
また今回のようにマイグレーション実行時だけメモリ容量を上げたい場合は下記のコマンドを実行すると良いです。
$ php -d "memory_limit=-1" artisan migrate