Repository navigation
3.0.0 - 2026-01-09
Major Features
-
Fluent Schema Builder (Blueprint API)
- Laravel-like fluent interface for defining tables
- Support for all common column types
- Column modifiers (nullable, default, unsigned, etc.)
- Index management (primary, unique, index, fulltext, spatial)
- Foreign key constraints with fluent API
- Polymorphic relationship helpers (morphs)
- Timestamps and soft deletes helpers
-
Migration Versioning System
- Migration tracking with batch numbers
- Up/down migration methods for reversibility
- Migration repository for tracking executed migrations
- Support for step-by-step rollbacks
-
CLI Tool (
bin/migrate)migrate- Run pending migrationsmigrate:rollback- Rollback migrationsmigrate:reset- Reset all migrationsmigrate:refresh- Reset and re-run migrationsmigrate:status- Show migration statusmigrate:install- Create migration tablemake:migration- Generate migration filesmake:seeder- Generate seeder filesdb:seed- Run database seeders
-
Multi-Database Support
- MySQL driver with full feature support
- PostgreSQL driver with native types (SERIAL, JSONB, etc.)
- SQLite driver for testing and lightweight apps
- Database-agnostic schema operations
-
Database Seeding
- Seeder base class with helper methods
- Seeder manager for running seeders
- Support for calling nested seeders
- Truncate and foreign key helpers
-
Schema Introspection
- Get all tables in database
- Get column information and types
- Get indexes and foreign keys
- Check table/column existence
- Get primary key columns
-
Event System
- PSR-compatible event dispatcher
- Migration lifecycle events (migrating, migrated, rollingBack, rolledBack)
- Seeder lifecycle events
-
Logging
- PSR-3 compatible logger
- File and console output
- Configurable log levels
- Exception logging with stack traces
-
Configuration Management
- Support for
.envfiles - PHP configuration files
- Environment variable parsing
- Dot notation for nested config
- Support for
New Classes
Farisc0de\PhpMigration\Schema\BlueprintFarisc0de\PhpMigration\Schema\ColumnDefinitionFarisc0de\PhpMigration\Schema\ForeignKeyDefinitionFarisc0de\PhpMigration\Schema\ForeignIdColumnDefinitionFarisc0de\PhpMigration\Schema\SchemaBuilderFarisc0de\PhpMigration\Schema\SchemaInspectorFarisc0de\PhpMigration\Schema\Grammars\GrammarFarisc0de\PhpMigration\Schema\Grammars\MySqlGrammarFarisc0de\PhpMigration\Schema\Grammars\PostgresGrammarFarisc0de\PhpMigration\Schema\Grammars\SqliteGrammarFarisc0de\PhpMigration\Migrations\MigratorFarisc0de\PhpMigration\Migrations\MigrationRepositoryFarisc0de\PhpMigration\Migrations\MigrationCreatorFarisc0de\PhpMigration\Migrations\MigrationFarisc0de\PhpMigration\Seeders\SeederFarisc0de\PhpMigration\Seeders\SeederManagerFarisc0de\PhpMigration\Seeders\SeederCreatorFarisc0de\PhpMigration\Database\ConnectionFarisc0de\PhpMigration\Database\ConnectionFactoryFarisc0de\PhpMigration\Console\ApplicationFarisc0de\PhpMigration\Console\CommandFarisc0de\PhpMigration\Console\Commands\*Farisc0de\PhpMigration\Support\ConfigFarisc0de\PhpMigration\Support\EventDispatcherFarisc0de\PhpMigration\Support\LoggerFarisc0de\PhpMigration\Contracts\*
Breaking Changes
- Minimum PHP version increased to 8.1
- New
ConnectionInterfacefor database connections - New
MigrationInterfacefor migration classes - New
SchemaGrammarInterfacefor database grammars
Backward Compatibility
- Original
Database,Migration,Utils,Options, andTypesclasses preserved - Legacy API continues to work for existing projects