web-dev-qa-db-ja.com

ダンプなしで、固有のプロファイルから同様のサイトを展開/管理するにはどうすればよいですか?

dumpingを意味する「cloningWebサイト」ソリューションが好きではないデータベースとこのダンプを別の環境にインポートします。これは、同じWebサイトの複数のインスタンス(staging/prod/dev/etc)をデプロイする実際の方法の方法とは異なります。

D7では、通常、カスタムプロファイルを使用し、drushを使用してこれらのプロファイルからWebサイトをインストールしました(後で機能を使用して後でサイトを同期する場合もあります)。これにより、新しいインストールが提供され、テストコンテンツはありませんが、重要な設定が共有されました。たとえば、一般的なコンテンツの同期は移行で行われます。

同じインストールプロファイルを共有する複数のD8インスタンスを管理しようとしました。最終的な目標は、サイト構成の共有と同期です。また、インストールごとに異なるサイトUUIDがあります。インストール時にsystem.site uuid構成変数を適用することに成功していません(もちろん、後で値を変更できますが、これは遅すぎるようで、すべてのオブジェクトがすでに異なるUUIDで作成されているため、最初の同期anightmare、デフォルトのコンテンツの一部を削除する必要がある、またはデフォルトの言語が削除できないために同期をクラッシュさせるなど)。

このUUIDを強制するために、生成されたsettings.phpファイルに$config['system.site']['uuid']値を含めて使用しようとしましたが、大失敗しました(サイトのインストール後も、設定は完全に無視されました)。

構成インストーラー プロファイルも確認しましたが、特にこのソリューションを別のインストールプロファイルと混合する方法は完全には理解できません。

したがって、問題は、インストールプロファイルから新しいサイトを展開する最良の方法は何ですか。

  • 「Webサイトのクローン作成」を行わず、サイトの作成時にSQLダンプを操作しません(例 クローンサイトの質問とは のように)。
  • フレッシュクリーンインストール(開発者コンテンツのガベージなし)を使用し、エクスポートされた構成とコードのみを使用
  • インストール構成のデフォルトとその後の同期の両方を管理できます
15
regilero

機能は、UUIDの問題を回避するのに役立ちます。まだバグがあり、プロセスを完全に自動化することはできませんが、少なくとも構成を手動でシフトして維持することはできます。

機能は引き続きモジュールを作成し、指定された機能モジュールのconfig/installディレクトリに構成をエクスポートします。これは、機能をインストールするときに取得され、機能のエクスポートの変更に応じて、サイト構成を引き続き更新できます(以前のDrush機能-元に戻す機能と同様)。

また、drushを介して構成を直接インポートすることもできます。構成フォルダーの構成notを上書きしないように、必ず--partialフラグを使用してください。 --sourceを使用すると、カスタム構成フォルダーの場所を定義することもできるため、drush cim --partial --source=docroot/modules/features/myfeature/config/installのようなことができます。

3
Balazs Dianiska

@Ivan Jarosヒントに基づいて、プロファイルのインストール時に特定の構成オプションを設定できます。明らかに、これはインストール時にのみ機能し、サイトが既にインストールされている場合には機能しません。

プロファイルの.installファイルで、hook_install()にデフォルトの構成設定を追加できます。

\Drupal::configFactory()
  ->getEditable('system.site')
  ->set('uuid', 'this is my new uuid')
  ->save(TRUE);

私はこれをローカルで試しましたが、うまくいきます。サイトのUUIDを変更するためにdrush csetを使用せずに、上記のコード(適切なUUIDを設定)を使用して、別のサイトから新しくインストールされたローカルサイトに構成をプルすることができました。

おそらく、どこかで環境のファイル、環境変数、またはサービスから取得するようにUUIDを設定できます。したがって、それらはすべて、そのプロファイルがインストールされているどのサイトでも同じになります。

私はsettings.phpから同様のことをしたいと思っていましたが、ConfigFactoryクラスはその時点では使用できず、質問で指摘したように、$configsettings.phpで設定すると_は影響しません。

1
Jesse Boyd

別のオプション:

drush config-set system.site uuid 56974bf2-68c2-3453-a211-de8bc754cc23
1
Achton