elnur/database-migrations
A Laravel package for working with database migrations, offering a simple way to organize and run schema changes in PHP applications. It aims to streamline common migration tasks while staying lightweight and easy to integrate.
.sql files are readable outside Laravel and replayable by Flyway, Liquibase, or Sqitch — relevant if a future decision involves migrating frameworks or handing schema management to a platform team.Consider the pattern (SQL files as migrations) only if most of these hold:
Look elsewhere — or implement it internally — if:
DB::statement() inside a normal migration covers most raw-SQL needs with zero new dependency.Executives. Do not add this package to production. It is a one-star, zero-dependent library with no maintenance signal, and it sits directly on the most privileged path in our release process — it runs arbitrary SQL against production databases. The idea it represents, SQL-first migrations, is worth a fraction of a day to validate; the dependency is not worth the tail risk. If the workflow proves valuable, we absorb roughly a hundred lines of our own code, which we can own, review, and patch.
Engineering. The package is a thin convenience layer: author migrations as plain .sql files instead of PHP classes. The real benefit is workflow, not code — DBAs write schema changes in their native language, complex DDL stops fighting the schema builder, and artifacts stay portable to Flyway/Liquibase later. The real cost is that we'd be trusting an unmaintained dependency to execute SQL against production, with unverified compatibility against our Laravel version and no upstream to escalate to. Recommended path: spike the pattern in a single migration to measure whether the DBA workflow gain is real. If it is, internalize it — a command that discovers and runs .sql files, with checksums and a ledger table, is small and testable. If someone insists on evaluating the package itself, cap the spike at one day, fork it under our org, pin the version, and name an owner before it reaches a shared environment.
How can I help you explore Laravel packages today?