Drupal 8でカスタムモジュールを作成しています。これには、いくつかのYAML構成ファイルが含まれています。
開発中に、たとえばカスタムエンティティに別のフィールドを追加するなど、構成を変更して追加する必要があります。
現在、Drupalに変更を通知する唯一の方法は、モジュールをアンインストールしてから再インストールすることです。
モジュールが提供する構成ファイルがアクティブな構成と同じであることをDrupalに確認させ、そうでない場合はアクティブな構成を更新する方法はありますか?モジュールの更新はどのように処理されますか?D7 hook_update_N
では、PHPを使用してフィールドを追加するために使用されますが、これはD8のCMで処理されるように見えますか?
モジュールのymlファイルを更新した後に試したこと:
drush cr
、設定の同期。更新されたすべての構成ファイルを手動でコピーします
sites/default/files/config_XXX/staging/
-ただし、このエラーは「ステージングされた構成はこのサイトとは異なるサイトから作成されたためインポートできません。このサイトのクローンインスタンス間でのみ構成を同期できます」。構成マネージャーを使用してファイルを1つずつ手動でインポートします。これは機能しますが、明らかにもっと自動化された方法が必要です。
[編集] config_updateモジュールを手動で使用して、変更を検査し、モジュールの構成に「元に戻す」。繰り返しますが、これはマニュアルです。
編集:設定の管理から-すべきこととしないこと
禁止事項
モジュールのconfig / installディレクトリのファイルを変更して、サイトのアクティブな構成を変更してください。Drupalはモジュールのインストール時にそのディレクトリからのみ読み取るため、これは機能しません。
...しかし、変更があるだろうモジュールが、彼らは彼らの初のリリースに必要な設定ファイル、およびこれまでに更新していないか、設定を追加しないことが何にバインドされていない限り、発生します。
前もって感謝します。
hook_update_N
私は何かを推測しますが、私は何がわからない
hook_update_N
。小規模サイト向けのDrupal 8に関する優れた記事(およびパート2)。D8 では、「サイトはモジュールではなく構成を所有します」。