Add a farm_migrate:import Drush command that executes all farmOS migrations.

This commit is contained in:
Michael Stenta 2021-09-15 10:26:56 -04:00
parent c477e05896
commit a24c3ff221
3 changed files with 88 additions and 13 deletions

View File

@ -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:

View File

@ -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 }

View File

@ -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);
}
}
}