D7'den D8'e geçiş için Migrate modülünü kullanıyorum ve tüm geçişi manuel olarak kodda yazıyorum (geçişte daha ayrıntılı kontrol istedim, yerleşik D7 migrate modülünü kullanmak yerine).
Aşağıdaki yapıya sahibim: D7 sitesi, görüntülerin Dosya varlıkları olarak saklandığı bir görüntü alanına sahiptir. D8 sitesinde, görüntü alanı bir Medya varlığına referans varlıktır (ve Medya varlığının bir Görüntü alanı vardır.)
Başlangıçta Görüntüler taşıma işlemim için aşağıdakiler vardı:
id: image_files
source:
plugin: legacy_images
constants:
source_base_path: http://example.com/
destination:
plugin: 'entity:file'
process:
fid: fid
filename: filename
source_full_path:
-
plugin: concat
delimiter: /
source:
- constants/source_base_path
- uri
-
plugin: urlencode
uri:
plugin: file_copy
source:
- '@source_full_path'
- uri
filemime: filemime
status: status
Makale düğümü taşıma dosyamda şunları vardı:
'field_article_image/target_id':
plugin: migration
migration: image_files
source: field_article_image
ama bunun işe yaramayacağını fark ettim. İmage_files geçişinden gelen target_id, medya varlık kimlikleri değil, gerçekten Dosya Varlığı Kimlikleriydi. İdeal dünyada, bu orta adımı oluşturacak üçüncü bir geçiş oluşturmanın ve dosya varlıklarını Medya Varlıkları'na geçirmenin ve ardından bu geçişi Makaleler geçişiyle eşlemenin bir yolunu bulmak istiyorum. Ancak bunu yapmanın iyi bir yolunu bulamıyorum.
Plan B, resim geçişi için manuel olarak dosya varlıkları oluşturacak, medya varlıklarına ekleyecek ve bu geçişi Makalelere aktaracak bir işlem eklentisi oluşturmak olacaktır (bu, orta adımı kaldırır). Ancak bu, Medya varlıkları geri alınabilirken Dosya Varlıkları'nın geri alınamayacağı anlamına gelir.