PHPackages                             shrrgnien/sequencial-migrations - 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. shrrgnien/sequencial-migrations

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

shrrgnien/sequencial-migrations
===============================

Pacote para rodar migrations customizadas de forma sequencial no Laravel.

v1.1.3(8mo ago)020MITPHPPHP &gt;=8.0

Since Aug 17Pushed 8mo agoCompare

[ Source](https://github.com/ShrrgnienT-T/SequencialMigrations)[ Packagist](https://packagist.org/packages/shrrgnien/sequencial-migrations)[ RSS](/packages/shrrgnien-sequencial-migrations/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (15)Used By (0)

Sequencial Migrations
=====================

[](#sequencial-migrations)

Pacote Laravel para rodar migrations customizadas de forma sequencial (em ordem definida).

Vantagens
---------

[](#vantagens)

- Exibe cenários de erro de forma mais amigável: ao invés de quebrar toda a sequência de migrations, permite identificar e tratar apenas a migration problemática, sem interromper o restante.
- Permite reajustar rapidamente a sequência: se uma migration falhar, é fácil corrigir e continuar de onde parou, sem precisar reverter tudo.
- Evita erros comuns de deploy: ao garantir a ordem e pular migrations já aplicadas, reduz riscos de inconsistências em ambientes diferentes.
- Facilita o trabalho com bancos de dados legados: muitos bancos legados foram criados sem migrations. Com este pacote, é possível rodar migrations específicas para alterar ou preparar o banco legado antes de migrá-lo, sem precisar executar todas as migrations novamente.
- Útil em cenários com múltiplos bancos: permite rodar apenas migrations pontuais em bancos legados, sem afetar o banco novo ou o restante do sistema.
- Ideal para transição de bancos legados para novos: possibilita migrar tabelas antigas para o padrão Laravel de forma controlada e incremental, aplicando partes do schema novo sem afetar o legado, tornando a migração mais segura e previsível.
- Permite definir uma lista de migrations customizadas (nomeadas ou anônimas) para serem executadas em ordem específica.
- Suporta tanto migrations padrão do Laravel quanto arquivos de migration anônimos.
- Executa o método `up()` de cada migration, pulando automaticamente migrations já aplicadas (baseado na existência da tabela).
- Executa o método `down()` de cada migration, revertendo na ordem inversa e pulando migrations já revertidas.
- Registra e remove as migrations na tabela padrão `migrations` do Laravel, mantendo o histórico/batch.
- Detecta automaticamente o nome da tabela criada/removida pela migration (por propriedade, método ou parsing do método `up`).
- Comando Artisan `migrate:base` para rodar todas as migrations customizadas em ordem, com suporte a `up` e `down`.
- Não requer registro manual do Service Provider graças ao Laravel Package Discovery.

Instalação
----------

[](#instalação)

```
composer require shrrgnien/sequencial-migrations
```

### Publicando o arquivo BaseMigration

[](#publicando-o-arquivo-basemigration)

Após instalar, publique o arquivo base para definir suas migrations:

```
php artisan vendor:publish --tag=sequencial-migrations-base
```

Isso irá criar o arquivo `database/migrations/BaseMigration.php` no seu projeto. Edite esse arquivo para definir a ordem das suas migrations.

Uso
---

[](#uso)

Importando migrations automaticamente para o BaseMigration
----------------------------------------------------------

[](#importando-migrations-automaticamente-para-o-basemigration)

Você pode popular o array `$migrations` do arquivo `database/migrations/BaseMigration.php` automaticamente com as migrations do seu projeto usando o comando Artisan:

```
php artisan migrate:import-base all
```

Opções disponíveis:

- `all`: importa todas as migrations (nomeadas e anônimas) encontradas na pasta `database/migrations` (exceto o próprio BaseMigration.php), sem duplicidade.
- `pending`: importa apenas as migrations que ainda não foram executadas (pendentes).
- `executed`: importa apenas as migrations já executadas (presentes na tabela `migrations`).

Exemplos:

Importar todas as migrations:

```
php artisan migrate:import-base all
```

Importar apenas as pendentes:

```
php artisan migrate:import-base pending
```

Importar apenas as já executadas:

```
php artisan migrate:import-base executed
```

O comando irá atualizar automaticamente o array `$migrations` do arquivo BaseMigration.php.

1. Edite manualmente ou utilize o comando acima para popular a propriedade `$migrations` em `database/migrations/BaseMigration.php`.

    - Você pode misturar migrations nomeadas (classes) e migrations anônimas (arquivos que retornam um objeto Migration).
    - Exemplo: ```
        protected array $migrations = [
           	 // Migration nomeada (classe PHP)
           	 'CreateProdutosTable',
           	 // Migration anônima (arquivo migration)
           	 '2025_08_11_135652_create_sis_solicitacoes_table',
        ];
        ```
    - Para migrations nomeadas, use apenas o nome da classe (sem namespace).
    - Para migrations anônimas, use o nome do arquivo (sem extensão .php).
2. Coloque suas migrations customizadas na pasta padrão do Laravel

    - Os arquivos devem estar em `database/migrations` do seu projeto Laravel.
3. Execute as migrations em ordem

    - Use o comando Artisan: ```
        php artisan migrate:base
        ```
    - Para reverter (down), use: ```
        php artisan migrate:base down
        ```

Exemplo de migration nomeada
----------------------------

[](#exemplo-de-migration-nomeada)

```
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateProdutosTable extends Migration
{
	public function up()
	{
		Schema::create('produtos', function (Blueprint $table) {
			$table->id();
			$table->string('nome');
			$table->timestamps();
		});
	}

	public function down()
	{
		Schema::dropIfExists('produtos');
	}
}
```

Depois, adicione 'CreateProdutosTable' no array `$migrations` da sua `BaseMigration`.

Licença
-------

[](#licença)

MIT

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance58

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Every ~0 days

Total

14

Last Release

267d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6a1abf343820608f0d31a17f90d79f25d8a42d942ee3f5da19fcc24b622787ea?d=identicon)[Shrrgnien](/maintainers/Shrrgnien)

---

Top Contributors

[![ShrrgnienT-T](https://avatars.githubusercontent.com/u/107649155?v=4)](https://github.com/ShrrgnienT-T "ShrrgnienT-T (18 commits)")

### Embed Badge

![Health badge](/badges/shrrgnien-sequencial-migrations/health.svg)

```
[![Health](https://phpackages.com/badges/shrrgnien-sequencial-migrations/health.svg)](https://phpackages.com/packages/shrrgnien-sequencial-migrations)
```

###  Alternatives

[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[cybercog/laravel-love

Make Laravel Eloquent models reactable with any type of emotions in a minutes!

1.2k302.7k1](/packages/cybercog-laravel-love)[cviebrock/eloquent-taggable

Easy ability to tag your Eloquent models in Laravel.

567694.8k3](/packages/cviebrock-eloquent-taggable)[clickbar/laravel-magellan

This package provides functionality for working with the postgis extension in Laravel.

423715.4k1](/packages/clickbar-laravel-magellan)[genealabs/laravel-pivot-events

This package introduces new eloquent events for sync(), attach(), detach() or updateExistingPivot() methods on BelongsToMany relation.

1404.9M8](/packages/genealabs-laravel-pivot-events)[reedware/laravel-relation-joins

Adds the ability to join on a relationship by name.

2121.2M13](/packages/reedware-laravel-relation-joins)

PHPackages © 2026

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