Updated all the contrib modules to their latest versions.
[yaffs-website] / web / modules / contrib / migrate_upgrade / migrate_upgrade.drush.inc
1 <?php
2
3 /**
4  * @file
5  * Command-line tools to aid performing and developing upgrade migrations.
6  */
7
8 use Drupal\migrate_upgrade\MigrateUpgradeDrushRunner;
9
10 /**
11  * Implements hook_drush_command().
12  */
13 function migrate_upgrade_drush_command() {
14   $items['migrate-upgrade'] = [
15     'description' => 'Perform one or more upgrade processes.',
16     'options' => [
17       'legacy-db-url' => 'A Drupal 6 style database URL. Required if you do not set legacy-db-key.',
18       'legacy-db-key' => 'A database connection key from settings.php. Use as an alternative to legacy-db-url',
19       'legacy-db-prefix' => 'Prefix of the legacy Drupal installation.',
20       'legacy-root' => 'Site address or root of the legacy Drupal installation',
21       'configure-only' => 'Set up the appropriate upgrade processes but do not perform them',
22       'migration-prefix' => 'With configure-only, a prefix to apply to generated migration ids. Defaults to \'upgrade_\'',
23     ],
24     'examples' => [
25       'migrate-upgrade --legacy-db-url=\'mysql://root:pass@127.0.0.1/d6\'' => 'Upgrade a Drupal 6 database to Drupal 8',
26       'migrate-upgrade --legacy-db-key=\'drupal_7\'' => 'Upgrade Drupal 7 database where the connection to Drupal 7 has already been created in settings.php ($databases[\'drupal_7\'])',
27       'migrate-upgrade --legacy-db-url=\'mysql://root:pass@127.0.0.1/d7\' --configure-only --migration-prefix=d7_custom_' => 'Generate migrations for a custom migration from Drupal 7 to Drupal 8',
28     ],
29     'drupal dependencies' => ['migrate_upgrade'],
30   ];
31   $items['migrate-upgrade-rollback'] = [
32     'description' => 'Rolls back and removes upgrade migrations.',
33     'examples' => [
34       'migrate-upgrade-rollback' => 'Rolls back a previously-run upgrade',
35     ],
36     'drupal dependencies' => ['migrate_upgrade'],
37   ];
38
39   return $items;
40 }
41
42 /**
43  * Execute the upgrade command, configuring the necessary migrations and
44  * optionally perform the imports.
45  */
46 function drush_migrate_upgrade() {
47   $runner = new MigrateUpgradeDrushRunner();
48
49   try {
50     $runner->configure();
51     if (drush_get_option('configure-only')) {
52       $runner->export();
53     }
54     else {
55       $runner->import();
56       \Drupal::state()->set('migrate_drupal_ui.performed', \Drupal::time()->getRequestTime());
57     }
58     // Remove the global database state.
59     \Drupal::state()->delete('migrate.fallback_state_key');
60   }
61   catch (\Exception $e) {
62     drush_log($e->getMessage(), 'error');
63   }
64 }
65
66 /**
67  * Rolls back any upgrade migrations that are present, and deletes the migrations
68  * themselves.
69  */
70 function drush_migrate_upgrade_rollback() {
71   if ($date_performed = \Drupal::state()->get('migrate_drupal_ui.performed')) {
72     if (drush_confirm(dt('All migrations tagged as \'Drupal\' will be rolled back. Are you sure?'))) {
73       $runner = new MigrateUpgradeDrushRunner();
74
75       try {
76         drush_log(dt('Rolling back the upgrades performed @date',
77           ['@date' => \Drupal::service('date.formatter')->format($date_performed)]));
78         $runner->rollback();
79         \Drupal::state()->delete('migrate_drupal_ui.performed');
80         drush_log(dt('Rolled back upgrades'));
81       }
82       catch (\Exception $e) {
83         drush_log($e->getMessage(), 'error');
84       }
85     }
86     else {
87       drush_user_abort();
88     }
89   }
90   else {
91     drush_log(dt('No upgrade operation has been performed.'), 'warning');
92   }
93 }