PHPackages                             mongoose-studio/phobos-framework-database-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. mongoose-studio/phobos-framework-database-migrations

ActiveLibrary

mongoose-studio/phobos-framework-database-migrations
====================================================

Phobos Framework — Migraciones y seeders con el DSL Harmonia, agnóstico multi-motor (MySQL, PostgreSQL, SQLite)

1.0.0(1mo ago)020MITPHPPHP &gt;=8.4

Since Jul 18Pushed 1mo agoCompare

[ Source](https://github.com/mongoose-studio/phobos-framework-database-migrations)[ Packagist](https://packagist.org/packages/mongoose-studio/phobos-framework-database-migrations)[ RSS](/packages/mongoose-studio-phobos-framework-database-migrations/feed)WikiDiscussions main Synced 2w ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

Phobos Framework - Database Migrations
======================================

[](#phobos-framework---database-migrations)

[![PHP Version](https://camo.githubusercontent.com/64a069e7c3b8fcd6db65758dfcf6884b8224069f53a516ac85d62117a230d469/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344253230382e342d626c7565)](https://www.php.net/)[![License](https://camo.githubusercontent.com/784362b26e4b3546254f1893e778ba64616e362bd6ac791991d2c9e880a3a64e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e2e737667)](LICENSE.txt)[![Phobos Framework](https://camo.githubusercontent.com/3a5d96f30c70e3a8057bd2f3dca9b77ecfd208b665cb58de1986b03ad08e462f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f50686f626f732d4672616d65776f726b2d6f72616e6765)](https://github.com/mongoose-studio/phobos-framework)

   ![Phobos Framework](https://raw.githubusercontent.com/mongoose-studio/phobos-framework/main/phobos-banner-dark.png)Migraciones y seeders para **Phobos Framework Database Layer**, con un DSL agnóstico de motor llamado **Harmonia** que compila a **MySQL, PostgreSQL y SQLite** desde una única definición. Se para sobre `mongoose-studio/phobos-framework-database`.

Coherente con la filosofía **database-first** de Phobos: la base de datos es la fuente de la verdad. Las migraciones versionan el esquema de forma explícita, y el **Introspector** hace el camino inverso — reconstruye la definición leyendo el catálogo de una base viva. Como Harmonia es una representación intermedia universal, un esquema se traduce entre motores: **DB ⇄ Harmonia ⇄ SQL (cualquier motor)**.

Características
---------------

[](#características)

- 🎯 **DSL agnóstico** - Un `Blueprint` fluido compila a MySQL, PostgreSQL y SQLite
- 🧬 **Convenciones Phobos** - `uuidv7()` (calza con `keyStrategy = uuidv7`) y `auditColumns()` en una línea
- 🔀 **Escotilla híbrida** - `rawType()` y `Schema::raw()` para lo específico de un motor
- 📦 **Harmonia** - El DSL serializa a JSON versionado y portable, con **modo estricto** anti-inyección
- 🔎 **Introspección** - `DB → Harmonia`: reconstruye definiciones desde una base viva y migra entre motores
- 🔬 **Diff de esquemas** - Compara dos bases del mismo motor (dev↔prod, tenant↔golden) y exporta el delta a Harmonia/SQL/migración
- 🌱 **Seeders idempotentes** - `insertOrIgnore` / `upsert` traducidos por motor
- 🧾 **Dry-run / SQL plano** - Exporta el DDL sin ejecutar nada, incluso 100% offline
- 🗂️ **Multi-tenant** - El `Migrator` recibe la conexión; aplicar a N tenants es recorrer conexiones
- 🧮 **Tabla de control** - `phobos_migrations` con `batch` (rollback por lote) y `checksum` (detecta drift)

Instalación
-----------

[](#instalación)

```
composer require mongoose-studio/phobos-framework-database-migrations
```

### Dependencias

[](#dependencias)

Este paquete requiere:

- `mongoose-studio/phobos-framework-database` ^3.2 (capa de base de datos)
- El/los driver(s) que uses: `-mysql`, `-postgres` y/o `-sqlite`
- PHP **8.4+** y la extensión `ext-pdo`

Una migración
-------------

[](#una-migración)

Cada archivo retorna una **clase anónima** que extiende `Migration` (sin colisión de nombres, calza con el prefijo de timestamp del archivo):

```
