Migration GUI plugin for CakePHP 3

Installs: 1 662

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 1

Open Issues: 0


v1.3.2 2020-12-10 07:55 UTC

This package is auto-updated.

Last update: 2021-04-10 08:39:51 UTC


Software License Build Status Codecov Latest Stable Version

This plugin provides a GUI for database migrations via a web browser.


This plugin can be run migration from the web browser directly so some operation may deleting/breaking data, You install this only when CUI cannot be used due to server restrictions. Also, when installing, setup authentication and authorization appropriately, so that unauthorized users cannot execute it.


  • List of Application / Plugins migration statuses
  • Run migrate / rollback a migration
  • Show migration file


You can install this plugin into your CakePHP application using composer.

The recommended way to install composer packages is:

composer require elstc/cakephp-migration-manager

(CakePHP >= 3.6.0) Load the plugin by adding the following statement in your project's src/Application.php:

\Cake\Lib\Configure::write('Elastic/MigrationManager.baseController', \App\Controller\AppController::class);
$this->addPlugin('Elastic/MigrationManager', ['bootstrap' => true, 'routes' => true]);

(CakePHP <= 3.5.x) Load the plugin by adding the following statement in your project's config/bootstrap.php file:

Configure::write('Elastic/MigrationManager.baseController', \App\Controller\AppController::class);
Plugin::load('Elastic/MigrationManager', ['bootstrap' => true, 'routes' => true]);

NOTE: If you don't need to migrate, you should comment out Plugin::load('Elastic/MigrationManager') to disable the plugin.

Configure key: Elastic/MigrationManager.baseController

Specify the base class of MigrationManager controller. The default is \Cake\Controller\Controller. Be sure to set it before loading the plugin because it will be used in the bootstrap of the plugin.

eg)Specify the base class to App\Controller\Admin\BaseController:

Configure::write('Elastic/MigrationManager.baseController', \App\Controller\Admin\BaseController::class);


You can be used by accessing https://{your-app-host}/migration-manager/migrations from a browser.

Allow rollback

In default, you can't call rollback action. If you want to rollback, adding the following statement in your project's config/bootstrap.php file:

Configure::write('Elastic/MigrationManager.canRollback', true);