Skip to main content

Laravel Default Database Tables Explained in Detail

Explore the 7-8 default database tables in Laravel, how core tables work, and when supplemental tables are created.

AI-written
Inewgen
04 Sep 2026Source: Dev.to2 min read (0 views)
Share
Laravel Default Database Tables Explained in Detail

Stock photo for illustration only, not from the actual event

Font size
  • A fresh Laravel install sets up 7-8 database tables automatically.
  • Core tables like users and failed_jobs are created via migration.
  • Supplemental tables like cache and sessions require specific Artisan commands.
  • Developers can customize tables or switch to Redis entirely.

Setting up a brand-new Laravel project automatically generates between 7 and 8 database tables depending on the installed packages. The core tables include users, password_resets, failed_jobs, and personal_access_tokens. None of these tables are set in stone, meaning developers have the flexibility to rename, extend, or replace any of them based on project requirements.

Only a subset of these tables—specifically users, password_resets, and failed_jobs—are generated when running standard migrations. Tables such as sessions, cache, jobs, and batches require running dedicated Artisan commands before they appear in your database schema.

software developer coding screen dark mode

Stock photo for illustration only, not from the actual event

Here is a breakdown of the default Laravel database tables:

  • users: Stores core user account information.
  • password_resets / password_reset_tokens: Manages password reset tokens (renamed in Laravel 8 and newer versions).
  • failed_jobs: Used for debugging failed queue tasks, featuring an exception column with full stack traces.
  • personal_access_tokens: Created by Laravel Sanctum to handle API token authentication.
  • sessions: Generated via php artisan session:table to store HTTP session data in the database instead of files.
  • cache: Generated via php artisan cache:table to store key-value cache entries.
  • jobs: Generated via php artisan queue:table to hold pending queue jobs.
  • batches: Generated via php artisan queue:batches-table to track parallel job processing progress.

Understanding Laravel's default table schema is crucial for efficient application architecture and debugging. While storing sessions and cache in the database improves scalability across multiple servers, high-traffic applications often migrate these layers to in-memory stores like Redis for optimal performance.

Furthermore, Laravel natively supports Redis for handling sessions, cache, and queues out of the box. Simply updating your .env driver to redis eliminates the need for these database tables altogether. To visualize your schema, tools like dbdiagram.io allow you to paste your connection string and generate a visual diagram of all your Laravel tables instantly.

Source: Dev.to

Comments

Leave a Comment
0/2000

Found something wrong in this article? Report an issue with this article