references
Viewsは、Drupal8からコアに内蔵されているとのことでreferenceもあるらしい。しかし、migradeで移行したあと、コンテンツタイプを確認したら node referenceのフィールドが全部なかった。
viewsはサイト構築の中にあるにはあるが、、
viewsが移行されてない
そもそも、viewsのブロックやらページが移行されてないようである。こんな記載があった。
いいえ、それらを再構築する必要があります。7〜8の間にアップグレードパスはありません。コアメンテナは、8で再構築し、コンテンツを移行するというアプローチを採用しました。アーキテクチャの変更が多すぎます。そのため、コンテンツに関するドキュメントしか表示されません。
4年前の記事であるが、migradeの機能としてはないようであるが、モジュールがあるようである
referenceを機能させる
手動でやるしかないかな、ということで、やってみる。いくつか、かなり長い間(冬休みのほぼ数日)を変えてこの方法で一つクリアできた。
- Datasheet類は部品種類(例えばMCUやDiodeなどの)を示す「親分類」としての親コンテンツをDatasheet_daibunruiとして持ち、
- その下に紐づく部品(個別の部品毎)をDatasheet_childとしたコンテンツとして構成していた。
- Datasheet_childは、1部品1コンテンツになり、node_referenceで親を参照する
D7でのコンテンツフィールドを示す(下段にD8移行後の状態を示している)
代理店やメーカなどの参照先もあるが、ここで一旦無視するとして、参照するためのフィールドを作る。viewsは移行する手段があるようですが、コンテンツのフィールドが移行されてなきゃだめなんで、結局全てのコンテンツを修正する必要があるというわけですかね?
さらにぐぐってみたら、Drupal 8 - Node reference migrate to entity reference typeの中に、こんなことが書いてある(ググ翻訳)
古いCCKパッケージのおよびフィールドタイプのD7バージョンを提供するReferencesモジュールを使用しているようです。node_referenceuser_reference
このモジュールは、drupal7の初期にこれらのフィールドタイプを有効にするためのソリューションでした。しばらくして、エンティティ参照がd7に登場し、任意のエンティティを参照するための汎用フィールドタイプを提供し、それ以来Drupal8コアに含まれています。 問題に対処するには、参照フィールドを適切なフィールドタイプに移行することから始める必要がありますentity_reference。 drupal 8の移行前に作業を完了するのに役立つ、Reference toEntityReferenceフィールド移行と呼ばれるモジュールがあります。
えっ?そうなの! 全然知らんかったんだけど。これは別のページでもう一回やるとして、、、
自分のサイトだったら、100もないけど、会社のイントラネット内のサイトのコンテンツは1000を超えてるからなー、誰がやるんかなぁ、なんて思っていましたが、方法があるようだ!