Una API, quattro database
Le migrazioni usano una API fluent identica indipendentemente dal driver: Migration::table()->id()->string()->bool()->timestamps(). Sotto il cofano, ogni Grammar class traduce le istruzioni nella sintassi corretta per il database in uso.
Questo significa che posso sviluppare su SQLite in locale e deployare su MySQL o PostgreSQL in produzione senza modificare una sola migrazione. Le differenze tra driver — come il tipo booleano, l auto-increment o i vincoli foreign key — vengono gestite automaticamente.
Funzionalita
- Column types completi: string, text, integer, decimal, json, enum, timestamps
- Modifiers: nullable, unique, default, unsigned, generatedAs
- Foreign key con cascade configurabile
- Alter table: add, drop, rename, modify column
- Rollback con tracking per batch
Il sistema e semplice da usare per le migrazioni comuni e abbastanza flessibile per i casi limite grazie al supporto per raw SQL.