Generating migration from existing database in Yii or Laravel

DamirDiz picture DamirDiz · Nov 28, 2012 · Viewed 13k times · Source

I'm working on a project that has a fairly complex database (150+ tables). In order to be able to maintain changes, I've decided to add migrations, preferably using Yii or Laravel.

Does anybody know, if it is possible to generate a initial migration from an existing database?

Creating it by hand would:

  • take for ever and
  • be very error-prone.

If there is no way, does anybody know a good PHP-based framework, that supports such functionality?

Answer

bmarston picture bmarston · May 8, 2013

Instructions for accomplishing this in Yii:

  1. Add your database connection settings to protected/config/console.php.

  2. Run yiic migrate create initial to create the stub code for the migration.

  3. Copy contents of this gist to protected/commands/InitialDbMigrationCommand.php.

  4. Run yiic initialdbmigration 'name_of_your_database' > initial_migration.php to generate up() and down() methods for initial database migration.

  5. Copy and paste up() and down() methods from initial_migration.php to the file created in the protected/migrations folder in step 2.