elstc/cakephp-migration-manager

Migration GUI plugin for CakePHP

Installs: 3 023

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 1

Open Issues: 0

Type:cakephp-plugin

v3.1.0 2025-06-09 09:36 UTC

README

Software License Build Status Codecov Latest Stable Version

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

IMPORTANT NOTICE

This plugin allows running migrations directly from a web browser, which means some operations may delete or break data. You should install this only when CLI cannot be used due to server restrictions. Also, when installing, set up authentication and authorization appropriately so that unauthorized users cannot execute it.

Features

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

Version Map

CakePHP Version Plugin Version Branch
5.x 3.x cake5
4.x 2.x cake4
3.x 1.x cake3

Installation

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

Load the plugin by adding the following statement in your project's Application::bootstrap() (open src/Application.php):

\Cake\Core\Configure::write('Elastic/MigrationManager.baseController', \App\Controller\AppController::class);
$this->addPlugin('Elastic/MigrationManager');

NOTE: If you don't need to migrate, you should comment out $this->addPlugin('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);

Usage

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

Allow rollback

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

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