sabarinathan / ci4-schema-to-migration
Generate CodeIgniter 4 migration files from an existing database schema.
Package info
github.com/sabarinathancs/ci4-schema-to-migration
pkg:composer/sabarinathan/ci4-schema-to-migration
Requires
- php: ^7.4 || ^8.0
- codeigniter4/framework: ^4.0
This package is auto-updated.
Last update: 2026-04-15 19:51:32 UTC
README
A CodeIgniter 4 package that generates migration files from your existing database tables.
Installation
Option 1: Via Composer (Recommended)
Run the following command in your CodeIgniter 4 project root:
composer require sabarinathan/ci4-schema-to-migration
Option 2: Manual Installation (Local Repositories)
If the package is not available on Packagist yet, you can refer to it locally.
- Open your CI4 project's
composer.json. - Add a
repositoriessection:"repositories": [ { "type": "vcs", "url": "https://github.com/sabarinathan/ci4-schema-to-migration" } ],
- Run:
composer require sabarinathan/ci4-schema-to-migration:dev-main
Command Discovery
After installation, the command dbmigration:generate will be automatically discovered by CodeIgniter 4's Spark CLI through the composer autoloading. You don't need to manually register it.
Verify it is listed by running:
php spark list
You should see dbmigration:generate under the Database group.
Usage
Run the Spark command to generate a migration for a specific table:
php spark dbmigration:generate <table_name>
Or generate migrations for ALL tables in the database:
php spark dbmigration:generate --all
Example:
php spark dbmigration:generate users
This will create a new migration file in app/Database/Migrations/.
Features
- Inspects Database: Reads column definitions, types, defaults, and nullability.
- Keys Support: Detects Primary Keys, Foreign Keys, and other Indexes.
- CI4 Compatibility: Generates standard
CodeIgniter\Database\Migrationclasses usingForge. - Safe: Uses
createTable(..., true)to prevent errors if the table already exists (IF NOT EXISTS).
Structure
src/Commands/GenerateMigration.php: The Spark command.src/Libraries/DatabaseInspector.php: Abstraction for reading DB schema.src/Libraries/MigrationGenerator.php: Logic to build migration code.src/Templates/migration.tpl.php: Template for the migration file.