Mercurial > hg > cmmr2012-drupal-site
comparison modules/contrib/migrate_upgrade/migrate_upgrade.drush.inc @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children | a9cd425dd02b |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c75dbcec494b |
---|---|
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 $runner->setOptions(); | |
49 | |
50 try { | |
51 $runner->configure(); | |
52 if (drush_get_option('configure-only')) { | |
53 $runner->export(); | |
54 } | |
55 else { | |
56 $runner->import(); | |
57 \Drupal::state()->set('migrate_drupal_ui.performed', \Drupal::time()->getRequestTime()); | |
58 } | |
59 // Remove the global database state. | |
60 \Drupal::state()->delete('migrate.fallback_state_key'); | |
61 } | |
62 catch (\Exception $e) { | |
63 drush_log($e->getMessage(), 'error'); | |
64 } | |
65 } | |
66 | |
67 /** | |
68 * Rolls back any upgrade migrations that are present, and deletes the migrations | |
69 * themselves. | |
70 */ | |
71 function drush_migrate_upgrade_rollback() { | |
72 if ($date_performed = \Drupal::state()->get('migrate_drupal_ui.performed')) { | |
73 if (drush_confirm(dt('All migrations tagged as \'Drupal\' will be rolled back. Are you sure?'))) { | |
74 $runner = new MigrateUpgradeDrushRunner(); | |
75 | |
76 try { | |
77 drush_log(dt('Rolling back the upgrades performed @date', | |
78 ['@date' => \Drupal::service('date.formatter')->format($date_performed)])); | |
79 $runner->rollback(); | |
80 \Drupal::state()->delete('migrate_drupal_ui.performed'); | |
81 drush_log(dt('Rolled back upgrades')); | |
82 } | |
83 catch (\Exception $e) { | |
84 drush_log($e->getMessage(), 'error'); | |
85 } | |
86 } | |
87 else { | |
88 drush_user_abort(); | |
89 } | |
90 } | |
91 else { | |
92 drush_log(dt('No upgrade operation has been performed.'), 'warning'); | |
93 } | |
94 } |