web-dev-qa-db-ja.com

Drupal 8移行モジュールで新しい移行を更新する方法は?

Drupal 8つの移行プロセスを記述した場合、カスタム移行モジュールを再インストールした場合にのみ新しい移行プロセスを更新できます。drushcrが機能しません。

説明:

つまり、1つのモジュール、つまりcm_migrations、2つのマイグレーションがあります。

  • cm_users
  • cm_tags

drush ms そうですか:

Group: beer     Status  Total  Imported  Unprocessed  Last imported       
 cm_users        Idle    3      3         0            2016-02-09 16:56:25 
 cm_tags         Idle    4      0         4                                

新しい移行プロセスを記述します。

  • cm_beers

drush cr; drush msと以前と同じ表が表示されます。

アンインストールしてインストールした場合のみcm_migrations 3つの移行プロセスを確認できます。

Group: beer     Status  Total  Imported  Unprocessed  Last imported       
 cm_users        Idle    3      3         0            2016-02-09 16:56:25 
 cm_tags         Idle    4      0         4                          
 cm_beers        Idle    4      0         4              

モジュールを再インストールせずに移行プロセスを更新する方法についての手がかりはありますか?

ありがとう

10

私はこれが私のために働いたことを発見しました

drush config-import --partial --source = modules/custom/migrate_module/config/install /

18
Peter J Lord

マイグレーションはMODULENAME/migrationsサブディレクトリ。移行構成を変更した後、単純なdrush cr変更を適用するには十分です。

設定派生者は、移行設定を移行プラグインに戻します。

この変更レコードを参照してください: 移行は構成エンティティの代わりにプラグインです

5
mpp

そのためのモジュールがあります。通常、ymlファイルはインストール時にのみロードされます。

このモジュールでは、自動的にインポートされるモジュール構成ファイルを定義できます。

https://www.drupal.org/project/config_devel

このブログ投稿もご覧ください: https://blog.liip.ch/archive/2016/05/04/using-the-new-drupal-8-migration-api-module.html

独自の開発Drupal 8移行モジュールとキャッシュの問題との戦い

これで、移行マッピング全体がyamlファイルで行われるようになりました。しかし、独自の移行yamlファイルを作成するのはどうですか?

残念ながら、新しいDrupal 8開発者にはいくつかの落とし穴があります。構成管理インターフェース( https://www.drupal.org/documentation/administer/config )of Drupal 8、「config/install」ディレクトリ内のすべてのymlファイルは、モジュールのインストール時にのみインポートされます。

これは、新しい構成ファイルを開発する場合には非常に非現実的です。これに対処するために、キャッシュの問題を解決する「構成開発」モジュール( https://www.drupal.org/project/config_devel )をインストールできます。すべてのリクエストで特定のymlファイルをインポートすることが可能です。ただし、残念ながら、drushコマンドはまだサポートされていません。したがって、module.info.ymlの新しいセクションにインポートするすべてのyamlファイルを追加する必要があります。

config_devel:
 install:
   - migrate_plus.migration.page_node
   - migrate_plus.migration.menu_item
   - migrate_plus.migration_group.liip

次に、ymlファイルを更新した後、次のコマンドを実行します。これにより、新しい構成ファイルが構成管理インターフェースにインポートされます。

drush cdi <module_name>
drush cr
5
FLY

私は同じ問題、つまり開発中に移行構成を更新する方法に苦労していました。これが私が終わったものです:

drush cdi1 path-to-config-dir-form-site-root/your-config.yml

config-devel-import-one、コマンド(cdi1(略して)は、アクティブな構成に単一の構成をインポートすることを目的としています。上記のconfig_develモジュールの一部です。

2
Artreaktor

FLYのソリューションでは成功しませんでした。 yamlを更新するには、migrate_toolsもアンインストールする必要がありました。そして、devel_config

私はこの更新された構成を見つけました:

$ drush @site_alias pmu mymodule, migrate_tools, migrate_plus -y
$ drush @site_alias en mymodule, migrate_tools, migrate_plus -y
1
s6712

Peter J Lordのソリューションのフォローアップとして、(新規または更新されたymls用の)configディレクトリーをsettings.phpファイルに追加することもできます。例えば。:

$config_directories['fresh'] = 'sites/default/fresh';

そのディレクトリに新しいymlファイルを配置し、drushのconfig-importコマンドを使用して新しい構成設定をインポートします。

drush cim fresh --partial 
0
edg