0
1

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で「Base table or view not found」エラーが出たので原因を確認してみた

Posted at

はじめに

Laravel を使ったアプリ開発中に発生した "SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.sessions' doesn't exist" エラーについて、解決方法を記録しておきます。

書こうと思ったきっかけ

個人的に PHP のキャッチアップをしたくて Laravel に取り組んでいます。

個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。

今回はセッション周りでハマったエラーが発生したため、初学者による備忘録として記録しておきます。

内容

エラーの内容

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

これは Laravel のセッションドライバに database を使っている場合に、sessions テーブルが存在しないと発生するエラーです。

解決手順

1. .envファイルの確認

SESSION_DRIVER=database

この設定により、Laravelは sessions テーブルを利用してセッションを管理しようとします。

2. セッションテーブル用マイグレーション作成

すでにマイグレーションが存在する場合はスキップしてOKです。

docker compose exec php-app php artisan session:table

3. マイグレーションを実行

docker compose exec php-app php artisan migrate

これにより sessions テーブルが DB に作成されます。

4. Laravel のキャッシュをクリア(念のため)

docker compose exec php-app php artisan config:clear
docker compose exec php-app php artisan route:clear
docker compose exec php-app php artisan view:clear

まとめ

Laravelのセッションをdatabaseで管理する際は、事前にsessionsテーブルをマイグレーションで作成しておく必要があります。

今回のような500エラーも、ログとマイグレーションの状態を確認することで解決できました。

今後もトラブル対応を学びに変えていきたいと思います...!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?