PHPackages                             kz370/laravel-migration-drift - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. kz370/laravel-migration-drift

ActiveLibrary[Database &amp; ORM](/categories/database)

kz370/laravel-migration-drift
=============================

A Laravel package to detect and fix schema drift between database and migrations.

00PHP

Since Jan 26Pushed 3mo agoCompare

[ Source](https://github.com/kz370/laravel-migration-drift)[ Packagist](https://packagist.org/packages/kz370/laravel-migration-drift)[ RSS](/packages/kz370-laravel-migration-drift/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel Migration Drift
=======================

[](#laravel-migration-drift)

A powerful Laravel package to detect and fix schema drift between your actual database and your migration files.

Why is this useful?
-------------------

[](#why-is-this-useful)

In a perfect world, your database schema exactly matches your migrations. In reality, "drift" happens:

- Developers manually add indexes or columns to the database for debugging or optimization and forget to create a migration.
- Merged branches might conflict in ways that migrations run but result in unexpected states.
- Legacy databases might have extra tables or columns not tracked in Laravel.

**Laravel Migration Drift** solves this by:

1. **Introspecting** your live database schema.
2. **Simulating** your migrations in a completely isolated in-memory SQLite database to determine the "perfect" expected state.
3. **Comparing** the two to find missing tables, extra columns, type mismatches, and index differences.
4. **Generating SQL** to fix the drift automatically.

Support for Multiple Connections
--------------------------------

[](#support-for-multiple-connections)

Yes! This package supports multiple database connections.

If you have multiple connections defined in your `config/database.php` (e.g., `mysql`, `pgsql`, `tenant`), you can specify which connection to check using the `--database` option.

### Usage

[](#usage)

**Check for drift:**

```
# Check default connection
php artisan migration:check-drift

# Check specific connection
php artisan migration:check-drift --database=tenant

# Generate a report file
php artisan migration:check-drift --report
php artisan migration:check-drift --report --report-format=html
```

**Fix drift:**

```
# Preview fixes for default connection
php artisan migration:fix-drift --dry-run

# Fix specific connection
php artisan migration:fix-drift --database=tenant
```

Features
--------

[](#features)

- **Drift Detection**: Finds missing tables, extra columns, and modified types.
- **Reporting**: Generates reports in Markdown, HTML, or JSON formats.
- **Strict Mode**: Optional strict comparison for precise type matching.
- **CI/CD Ready**: Returns exit code 1 if drift is detected, making it perfect for CI pipelines.
- **Auto-Fix**: Generates `ALTER TABLE` and `CREATE TABLE` statements to sync your DB.
- **Safe**: Fixes require confirmation (unless `--force` is used) and won't drop data/tables automatically without clear comments.

Extra Tables (Safety First)
---------------------------

[](#extra-tables-safety-first)

If your database has tables that are **not** in your migrations (e.g. legacy tables, analytics, etc.), this package will:

1. **Report them** as "Extra Tables" in the check command.
2. **Ignore them** intentionally when generating fixes. It will **NEVER** automatically generate `DROP TABLE` statements for them.
3. Instead, it will output a **commented-out** SQL suggestion (e.g., `-- DROP TABLE analytics;`) so you can manually run it if you really intended to delete it.

You can also explicitly ignore known extra tables using the `--ignore-tables` option:

```
php artisan migration:check-drift --ignore-tables=analytics,legacy_data
```

Installation
------------

[](#installation)

```
composer require kz370/laravel-migration-drift
```

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance54

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a83ad798b7fe8683b4388105008c4cf18937268bf490bc8379528d362cfc5117?d=identicon)[khaledz370](/maintainers/khaledz370)

---

Top Contributors

[![kz370](https://avatars.githubusercontent.com/u/94254886?v=4)](https://github.com/kz370 "kz370 (1 commits)")

### Embed Badge

![Health badge](/badges/kz370-laravel-migration-drift/health.svg)

```
[![Health](https://phpackages.com/badges/kz370-laravel-migration-drift/health.svg)](https://phpackages.com/packages/kz370-laravel-migration-drift)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M546](/packages/mongodb-mongodb)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90340.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
