Laravel Optimize Database
Laravel Optimize Database stats
- Downloads
- 2.5K
- Stars
- 136
- Open Issues
- 3
- Forks
- 6
Publishes migrations that make your database production ready.
This package is a work-in-progress, therefore you should not use it in production - and always backup your database before requiring it through Composer.
This package provides a simple way to optimize your SQLite database in Laravel; it's a good starting point for production-ready SQLite databases. At the time of this writing, it applies the following settings:
┌───────────────────────────┬─────────────┬───────────┐│ Setting │ Value │ Via │├───────────────────────────┼─────────────┼───────────┤│ PRAGMA auto_vacuum │ incremental │ Migration ││ PRAGMA journal_mode │ WAL │ Migration ││ PRAGMA page_size │ 32768 │ Migration ││ PRAGMA busy_timeout │ 5000 │ Runtime ││ PRAGMA cache_size │ -20000 │ Runtime ││ PRAGMA foreign_keys │ ON │ Runtime ││ PRAGMA incremental_vacuum │ (enabled) │ Runtime ││ PRAGMA mmap_size │ 2147483648 │ Runtime ││ PRAGMA temp_store │ MEMORY │ Runtime ││ PRAGMA synchronous │ NORMAL │ Runtime │└───────────────────────────┴─────────────┴───────────┘
The settings are applied in two ways:
- Migration Stub - Applied via migration.
- Runtime Configuration - Applied at runtime, via service provider.
🚀 Installation
Requires PHP 8.2+, SQLite 3.46+ and Laravel 11.0+
You can install the package via Composer:
composer require nunomaduro/laravel-optimize-database --dev
🙌 Usage
To get started optimizing your SQLite database, you need to run the following command:
php artisan db:optimize
At this point, the [Runtime] settings are applied automatically. However, you need to run the migration to apply the [Migration] settings:
php artisan migrate
Laravel Optimize Database was created by Nuno Maduro under the MIT license.
@laravel core member — created @pestphp, @laravel-zero, collision, larastan, pint, @openai for php, @phpinsights, termwind, and more.