Add a farm_migrate:import Drush command that executes all farmOS migrations.
This commit is contained in:
parent
c477e05896
commit
a24c3ff221
|
@ -42,20 +42,25 @@ Follow the steps below to migrate your farmOS 1.x data to farmOS 2.x:
|
|||
4. Copy user-uploaded files to the new directory (see
|
||||
[Migrating files](#migrating-files) below).
|
||||
5. Install the farmOS Migrate (`farm_migrate`) module.
|
||||
6. Run the farmOS 1.x Migrations via Drush (in this order):
|
||||
6. Run the farmOS 1.x Migrations via Drush:
|
||||
|
||||
drush migrate:import --group=farm_migrate_config
|
||||
drush migrate:import --group=farm_migrate_role
|
||||
drush migrate:import --group=farm_migrate_user
|
||||
drush migrate:import --group=farm_migrate_file
|
||||
drush migrate:import --group=farm_migrate_taxonomy
|
||||
drush migrate:import --group=farm_migrate_asset
|
||||
drush migrate:import --group=farm_migrate_area
|
||||
drush migrate:import --group=farm_migrate_asset_parent
|
||||
drush migrate:import --group=farm_migrate_sensor_data
|
||||
drush migrate:import --group=farm_migrate_quantity
|
||||
drush migrate:import --group=farm_migrate_log
|
||||
drush migrate:import --group=farm_migrate_plan
|
||||
drush farm_migrate:migrate
|
||||
|
||||
Alternatively, migration groups can be run individually, if you need
|
||||
more control over the process. They must be run in this order:
|
||||
|
||||
drush migrate:import --group=farm_migrate_config
|
||||
drush migrate:import --group=farm_migrate_role
|
||||
drush migrate:import --group=farm_migrate_user
|
||||
drush migrate:import --group=farm_migrate_file
|
||||
drush migrate:import --group=farm_migrate_taxonomy
|
||||
drush migrate:import --group=farm_migrate_asset
|
||||
drush migrate:import --group=farm_migrate_area
|
||||
drush migrate:import --group=farm_migrate_asset_parent
|
||||
drush migrate:import --group=farm_migrate_sensor_data
|
||||
drush migrate:import --group=farm_migrate_quantity
|
||||
drush migrate:import --group=farm_migrate_log
|
||||
drush migrate:import --group=farm_migrate_plan
|
||||
|
||||
To view the status of all farmOS 1.x migrations:
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
services:
|
||||
farm_migrate.commands:
|
||||
class: Drupal\farm_migrate\Commands\FarmMigrateCommands
|
||||
arguments: ['@plugin.manager.migration', '@date.formatter', '@entity_type.manager', '@keyvalue']
|
||||
tags:
|
||||
- { name: drush.command }
|
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\farm_migrate\Commands;
|
||||
|
||||
use Drupal\migrate_tools\Commands\MigrateToolsCommands;
|
||||
|
||||
/**
|
||||
* Farm Migrate Drush commands.
|
||||
*
|
||||
* @ingroup farm
|
||||
*/
|
||||
class FarmMigrateCommands extends MigrateToolsCommands {
|
||||
|
||||
/**
|
||||
* Perform a 1.x data migration.
|
||||
*
|
||||
* @command farm_migrate:import
|
||||
*
|
||||
* @usage farm_migrate:import
|
||||
*/
|
||||
public function farmMigrate() {
|
||||
$this->executeFarmMigrations();
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the farmOS migration groups in the order they should be executed.
|
||||
*
|
||||
* @return array
|
||||
* Array of migration group names.
|
||||
*/
|
||||
protected function farmMigrationGroups() {
|
||||
return [
|
||||
'farm_migrate_config',
|
||||
'farm_migrate_role',
|
||||
'farm_migrate_user',
|
||||
'farm_migrate_file',
|
||||
'farm_migrate_taxonomy',
|
||||
'farm_migrate_asset',
|
||||
'farm_migrate_area',
|
||||
'farm_migrate_asset_parent',
|
||||
'farm_migrate_sensor_data',
|
||||
'farm_migrate_quantity',
|
||||
'farm_migrate_log',
|
||||
'farm_migrate_plan',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes all farmOS migrations.
|
||||
*
|
||||
* @throws \Exception
|
||||
* If some migrations failed during execution.
|
||||
*/
|
||||
protected function executeFarmMigrations() {
|
||||
$groups = $this->farmMigrationGroups();
|
||||
foreach ($groups as $group) {
|
||||
$options = [
|
||||
'group' => $group,
|
||||
];
|
||||
$this->import('', $options);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue