1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHP備忘録:Laravel + Docker 環境でセッションエラーが出たときのマイグレーション対処法

Posted at

はじめに

LaravelでPHPの学習をしている中で、セッション関連のエラーに遭遇したため、その対処法について記録しておきます。

本記事は、個人的にPHPをキャッチアップしている初学者による備忘録です。


書こうと思ったきっかけ

Laravel環境をDocker上に構築し、フォームのPOST処理などを試していた際、Internal Server Error に遭遇しました。ブラウザ上には以下のようなエラーメッセージが表示されました:

Illuminate\Database\QueryException
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.sessions' doesn't exist

このエラーは、.env にて SESSION_DRIVER=database が指定されている状態で sessions テーブルが存在しないときに発生します。


内容

エラー原因

Laravelは、セッション情報を sessions テーブルに保存しようとしましたが、該当のテーブルが存在していなかったためエラーになりました。

解決手順(実際に行った対応)

make migrate

このコマンドは以下を実行してくれます:

docker compose exec php-app php artisan migrate

実行ログ:

INFO  Preparing database.  

Creating migration table .............................................................. 18.63ms DONE

INFO  Running migrations.  

0001_01_01_000000_create_users_table .................................................. 58.28ms DONE
0001_01_01_000001_create_cache_table .................................................. 18.64ms DONE
0001_01_01_000002_create_jobs_table ................................................... 44.38ms DONE
2025_05_05_010232_create_messages_table ................................................ 9.03ms DONE

この実行によって、sessions テーブルも含めてすべてのマイグレーションが処理され、エラーが解消されました。


まとめ

このエラーはLaravelでセッションをDB管理しようとした際に非常によくあるもので、php artisan session:tablephp artisan migrate の流れで解決できました。

今回は make migrate により一括実行したことで、全てのテーブルが作成され、sessions テーブル関連のエラーも無事解消されました。

Laravelのセッションは .envSESSION_DRIVERfiledatabase に切り替えられるため、用途に応じて設定とマイグレーションを調整するのがポイントだと痛感しました...!

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?