Simplify and accelerate applying many migrations at once using a flattened dump
of the database schema and migrations, similar in spirit to Rails' schema.rb
.
Works with the mysql
, pgsql
, and sqlite
database drivers.
Laravel 8+ has schema:dump
which serves a similar purpose. This package may
still be preferred if one wants the dumping to be automatic after each migrate
invocation, old migrations to remain in place, or to also dump data.
You can install the package via composer:
composer require --dev always-open/laravel-migration-snapshot
Database command-line utilities (such as mysqldump
and mysql
) must be in the
path where Artisan will be run.
Put migration-snapshot.php
into config
with:
php artisan vendor:publish --provider="\AlwaysOpen\MigrationSnapshot\ServiceProvider"
Implicitly migrate as load from an earlier, flattened copy:
php artisan migrate
(When migrations
table is empty and migrating a configured environment;
defaults to 'development', 'local', and 'testing'.)
Migrate without loading from, or dumping to, flattened copy:
MIGRATION_SNAPSHOT=0 php artisan migrate
Update the flattened SQL file:
php artisan migrate:dump
Load from the flattened SQL file, dropping any existing tables and views:
php artisan migrate:load
composer test
Please see CONTRIBUTING for details.
- Paul R. Rogers
- ORIS Intelligence
- PriceSpider (NeuIntel)
- All Contributors
The MIT License (MIT). Please see License File for more information.