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
Requires
- php: >=8.1
- cakephp/cakephp: ^5.0
- cakephp/migrations: ^4.0
Requires (Dev)
- cakephp/authorization: ^3.0
- cakephp/cakephp-codesniffer: ^5.0
- phpstan/phpstan: ^1.12
- phpunit/phpunit: ^10.5.5 || ^11.1.3 || ^12.0.9
README
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);