Yii2 uses Migration to back up and restore the database, adding other extended usage methods.
If you are using PHP7.2, then yII must use v2.0.15.1 or higher, because the yii2 core class Object conflicts with the PHP7.2 reserved class Object.
use yii\base\Object // PHP7.1 and previous versions
use yii\base\BaseObject // PHP7.2
The preferred way to install this extension is through [composer] (http://getcomposer.org/download/).
Run
composer require hjp1011/yii2-console-migration "*"
Or add
"hjp1011/yii2-console-migration": "*"
To the corresponding location of the 'composer. Json' file.
inconsole\config\main.php
add :
'controllerMap' => [
'migrate' => [
'class' => 'yiiframe\migration\ConsoleController',
],
],
Use on the command line:
php ./yii migrate/backup all #Backup all tables
php ./yii migrate/backup table1,table2,table3... #Backup multiple tables
php ./yii migrate/backup table1 #Back up a table
php ./yii migrate/up #Restore all tables
Add the following code to a background controller, such as PublicController:
public function actions()
{
return [
'backup' => [
'class' => 'yiiframe\migration\WebAction',
'returnFormat' => 'json',
'migrationPath' => '@console/migrations'
]
];
}
Send an Ajax request to/admin/public/backup?tables=yii2_ad,yii2_admin
。
For friends who want to do more extensions, you can inherit directly
yiiframe\migration\components\MigrateCreate
Or use the following code:
$migrate = Yii::createObject([
'class' => 'yiiframe\migration\components\MigrateCreate',
'migrationPath' => $this->migrationPath
]);
$migrate->create($table);