dragon-code/migrate-db
Laravel package for migrating data between different database systems. Move tables and records from MySQL, PostgreSQL, SQLite, SQL Server and more using configurable mappings, artisan commands and safe, resumable transfers.
The caveat that reframes everything: the repository is archived, has 0 dependents, and 155 stars. That means it is not a dependency — it is a code sample we adopt and own. The product decision it best supports is therefore "fork this as an internal utility, budget an owner, and treat the upstream as frozen," not "add it to composer.json and move on."
Consider it when:
Look elsewhere when:
pg_dump/mysqldump or a managed migration service is the safer, better-understood path.Verification checklist before committing (assign to engineering during the spike): supported drivers, chunk size and memory profile, transaction and foreign-key ordering behavior, failure/resume semantics, Laravel version compatibility at our pinned version, and whether the test suite is meaningful enough to extend. The recent release date is not evidence of health on an archived repo — confirm the archive date against it.
To executives: This is a free, MIT-licensed utility that shortens the data-migration leg of our re-platforming work by an estimated several engineer-days per cutover, with no license cost and no vendor negotiation. The trade-off is ownership: the project is archived upstream, so we are not buying support — we are adopting a small piece of code and assigning an internal owner. My recommendation is a one-day spike against a realistic dataset, then a fork under our org with tests and a named maintainer. Low cost, bounded risk, clear exit (native dump/restore) if the spike disappoints.
To engineering: Small, Artisan-centric, and driven by the database connections you already have in config/database.php — minimal new surface area. Treat it as source, not as a package: fork it, pin it, add tests around our actual schema and volume, and document the runbook. We are explicitly accepting that it will not receive upstream fixes, which is fine for a migration-window tool and not fine for anything long-lived.
Framing for the decision log: adopt-and-own, time-boxed to the migration program, with a defined deprecation path — not a strategic dependency, and not a pattern we repeat for future data movement needs.
How can I help you explore Laravel packages today?