web-dev-qa-db-ja.com

移行ツールモジュールを使用してリストからインポートインスタンスを削除する

移行のrss参照を削除しようとしています。 drupal管理インターフェイスのMigrateモジュールにyamlコードを配置すると、そのyamlコードへの参照が作成されますが、UIに参照を表示できるユーザーがいません。ツールの移行モジュールでは、drushコマンドにアクセスできますが、参照を削除することはできませんでした。

インポートへの参照を削除する方法を知っている人はいますか? $ drush msを使用してコマンドラインから参照を表示できます

私は検索しましたが、これを使用して見つけることしかできませんでしたが、機能しません。

$ drush php

>>> Drupal::configFactory()->getEditable('migrate_plus.migration.my_rss_importer')->delete();

これは、削除しようとしているCLIからのインポートのリストです。参考までに、上記のコードで言及されている「migrate_plus」は、migrateモジュールを補完する別のモジュールです。

Group: Default (default)      Status  Total  Imported  Unprocessed  Last imported
 berkeley_news_rss_importer_1  Idle    20     20        0            2017-12-09 23:08:36
 berkeley_news_rss_importer_2  Idle    20     20        0            2017-12-09 23:12:34
 berkeley_news_rss_importer_3  Idle    20     20        0            2017-12-09 23:14:03
 berkeley_news_rss_importer_4  Idle    20     20        0            2017-12-09 23:20:04
 berkeley_news_rss_importer_5  Idle    20     20        0            2017-12-09 23:33:17
 berkeley_news_rss_importer_6  Idle    20     20        0            2017-12-09 23:42:26
 berkeley_news_rss_importer_7  Idle    20     0         0            2017-12-10 00:11:17
 berkeley_news_rss_importer_8  Idle    20     20        0            2017-12-11 09:46:45
 berkeley_news_rss_importer_9  Idle    20     0         20
2
ja408

マイグレーションを削除して、drush ms出力に表示されないようにしますか?これを行う:

インポートされたコンテンツの削除

2回目の質問を読んだとき、「既にインポートされているコンテンツを削除するにはどうしたらいいですか?」それがあなたの質問である場合、略してdrush migrate-rollbackまたはdrush mrを試してください。 drush mr --helpのドキュメントをご覧ください。

マイグレーションの削除

  • 構成管理を使用している場合は、構成同期ディレクトリから関連する構成YMLファイルを削除し、drush cimを実行します。 migrate_plus.migration.MIGRATION_IDという名前のファイルがあるはずです。確認を求められ、yと言うと、関連する移行が削除されます。
  • 構成管理を使用していない場合は、drush config-listを実行します。次に、削除するすべての移行について、構成リストの出力で移行の名前を検索し、config-deleteを実行します。例:drush cdel migrate_plus.migration.MIGRATION_ID長期的には構成管理の使用を検討してください。

移行マッピングの削除

  • 移行モジュールは、移行を追跡するためにデータベースにいくつかのマッピングテーブルを作成した可能性があります。これらのテーブルを削除するには(あなたが何をしているのかわかっていると思います)、移行用のマッピングテーブルとメッセージテーブルを削除します。例:DROP TABLE IF EXISTS migrate_map_MIGRATION_ID, migrate_messages_MIGRATION_ID。これを実行すると、rollbackを実行できなくなります。

それが役に立てば幸い。

2
Jigarius

移行と移行はエンティティです。次のコードはMigrationGroup :: delete()から変更されたもので、グループ内の各移行を見つけて削除します。

$migration_to_delete = 'my_rss_importer'; 
$migration = \Drupal::entityTypeManager()
  ->getStorage('migration')
  ->load($migration_to_delete);
$migration->delete();

これはCache :: invalidateTags(['migration_plugins'])を呼び出すので、キャッシュをクリアすると、キャッシュされたプラグインが削除されることに注意してください。

0
oknate