elstc / cakephp-migration-manager
Migration GUI plugin for CakePHP
Installs: 3 017
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
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
- phpunit/phpunit: ^10.1
README
This plugin provides a GUI for database migrations via a web browser.
IMPORTANT NOTICE
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.
Features
- List of Application / Plugins migration statuses
- Run migrate / rollback a migration
- Show migration file
Version Map
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 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);