SeedVault is a simple Laravel package to create, manage, and restore database snapshots as Seeder files — right from the UI or Artisan commands.
✅ Take a snapshot of your database (except migrations & snapshot table).
✅ Store snapshots in database/seeders/ with a unique timestamp.
✅ View snapshot history with date/time.
✅ Restore database from any snapshot.
✅ Delete snapshots you don’t need.
✅ Clean TailwindCSS-powered standalone UI.
composer require axilivo/seedvaultThe package auto-loads its migration. Just run:
php artisan migrateThis creates the axilivo_seed_snapshots table to keep track of your snapshots.
-
Using Artisan:
php artisan seedvault:snapshot
-
Or using the UI:
Visit
/seed-vaultin your browser and click Create Snapshot.
-
From the UI: Click Restore next to the snapshot you want.
-
Or run manually:
php artisan db:seed --class=Database\\Seeders\\AllTableDataSeeder_YYYY_MM_DD_HHMMSS
(Replace with your snapshot’s class name.)
- From the UI, click Delete.
- This will remove both the Seeder file & the DB record.
| Method | URI | Action |
|---|---|---|
| GET | /seed-vault |
View all snapshots |
| POST | /seed-vault/create |
Create snapshot |
| POST | /seed-vault/restore/{id} |
Restore snapshot |
| DELETE | /seed-vault/delete/{id} |
Delete snapshot |
All routes are auto-loaded with the web middleware and seed-vault prefix.
- Snapshots:
database/seeders/ - Log table:
axilivo_seed_snapshots
A generated Seeder file looks like:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class AllTableDataSeeder_2025_07_11_153000 extends Seeder
{
public function run(): void
{
DB::table('your_table')->truncate();
DB::table('your_table')->insert([
// Your data snapshot
]);
}
}PRs and issues are welcome! This package is MIT licensed.
Built with ❤️ by Axilivo.
The MIT License (MIT). Please see License File for more information.