Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Laravel Optimize Database

Laravel Optimize Database Laravel Package

nunomaduro/laravel-optimize-database

Laravel package by Nuno Maduro that inspects the queries your app actually runs and adds the missing database indexes for you. It records query patterns, then generates migrations to speed up slow lookups, making database optimization largely automatic in Laravel projects.

View on GitHub
Deep Wiki
Context7

Publishes migrations that make your database production ready.

Frequently asked questions about Laravel Optimize Database
What does nunomaduro/laravel-optimize-database do?
It is a Laravel package by Nuno Maduro that helps make your database production ready by publishing migration files for missing indexes. It records the query patterns your application actually runs and turns them into migrations that can speed up slow lookups. After the migrations are generated, the package has no runtime footprint in your application.
How do I install nunomaduro/laravel-optimize-database in a Laravel app?
Install it as a development dependency with composer require --dev nunomaduro/laravel-optimize-database, then run the package's Artisan command to publish the migrations. Review the generated files in database/migrations before committing or running them. The package is intended as a one-time scaffolding step rather than a permanent runtime dependency.
Which Laravel and PHP versions does laravel-optimize-database support?
The evaluation context does not provide an explicit compatibility matrix, so check the repository's composer.json and CI configuration before adopting it. Confirm that the package supports your Laravel and PHP versions, especially if you are on a current Laravel release. If the package is pinned to an older Laravel major, prefer copying the migration patterns instead of adding the dependency.
What migrations does laravel-optimize-database publish?
The package publishes migrations that make the database production ready, primarily by adding missing indexes identified from your application's query patterns. The generated files are ordinary Laravel migrations, and the exact inventory should be reviewed because some output may also involve column definitions or constraints. Do not assume every migration applies to your schema without inspecting the SQL operations first.
Does laravel-optimize-database work with existing production databases?
It can be used against existing databases, but the generated migrations are safest when your schema follows Laravel's default conventions. Custom user tables, UUID or ULID keys, soft deletes, tenant-scoped tables, and squashed schema dumps can make some generated migrations irrelevant or incorrect. Review each migration against your real schema before running it in production.
Are the migrations generated by laravel-optimize-database reversible?
Not necessarily. The evaluation notes that down() methods may be absent or lossy, so rolling back a generated migration may not restore the previous index or column state. Review every generated migration's down() implementation before running it, especially for index drops or column type changes.
Can laravel-optimize-database lock large tables or cause downtime?
Yes, the generated migrations are normal DDL, so index builds or column type changes on large production tables can lock or take a long time. Test the migrations on a staging copy and use your database's online DDL or migration tooling where available. A column type change can also risk silent truncation, so validate data before applying it.
How does laravel-optimize-database know which indexes to add?
It records the query patterns your Laravel application actually runs, then generates migrations for indexes that appear to be missing. That means the output reflects observed queries rather than a static checklist, so exercising realistic application flows before generating migrations matters. You should still validate the suggestions with query plans and schema knowledge.
Should I keep nunomaduro/laravel-optimize-database as a production dependency?
No, it is best treated as a dev-only dependency and a one-time scaffolding step. After you review and commit the generated migrations, the package can be removed from composer.json with zero production impact because it has no request-lifecycle footprint. Keeping it out of production dependencies also reduces your dependency surface.
What are alternatives to laravel-optimize-database for Laravel index optimization?
Many teams use Laravel Telescope or Debugbar to find slow queries, then write index migrations manually after checking EXPLAIN plans. Database-native tooling and review of query logs are also common alternatives. laravel-optimize-database is best seen as a shortcut or reference implementation rather than a platform standard.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo