আমি ডি 7 থেকে ডি 8 মাইগ্রেশনের জন্য মাইগ্রেট মডিউলটি ব্যবহার করছি এবং কোডটিতে পুরো মাইগ্রেশনটি ম্যানুয়ালি লিখছি (মাইগ্রেশনের উপর আরও গ্রানুয়াল নিয়ন্ত্রণ চেয়েছি বলে D7 মাইগ্রেট মডিউলটি অন্তর্নির্মিত ব্যবহার না করে))
আমার নিম্নলিখিত কাঠামো রয়েছে: ডি 7 সাইটের একটি চিত্র ক্ষেত্র রয়েছে যেখানে চিত্র সত্ত্বা হিসাবে ফাইল সঞ্চিত থাকে। ডি 8 সাইটে, চিত্র ক্ষেত্রটি কোনও মিডিয়া সত্তার সত্তার উল্লেখ and
মূলত, আমার চিত্রগুলি স্থানান্তরের জন্য আমার কাছে নিম্নলিখিতগুলি ছিল:
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
আমার নিবন্ধ নোড মাইগ্রেশন ফাইলের ভিতরে, আমার নিম্নলিখিতগুলি ছিল:
'field_article_image/target_id':
plugin: migration
migration: image_files
source: field_article_image
কিন্তু আমি বুঝতে পারি যে এটি কাজ করবে না। ইমেজ_ফাইলগুলি স্থানান্তর থেকে আসা টার্গেট_আইডিটি আসলে ফাইল সত্ত্বার আইডি ছিল, মিডিয়া সত্তা আইডির নয়। আদর্শ বিশ্বে, আমি একটি তৃতীয় স্থানান্তর তৈরির একটি উপায় খুঁজতে চাই, যা এই মধ্যম পদক্ষেপটি তৈরি করবে এবং ফাইল সত্ত্বাকে মিডিয়া সত্তায় স্থানান্তরিত করবে এবং তারপরে নিবন্ধ মাইগ্রেশনে মাইগ্রেশনটি ম্যাপ করবে। যাইহোক, আমি এটি করার একটি ভাল উপায় বের করতে পারি না।
প্ল্যান বিটি হ'ল চিত্রের মাইগ্রেশনের জন্য একটি প্রক্রিয়া প্লাগইন তৈরি করা হবে যা ম্যানুয়ালি ফাইল সত্ত্বা তৈরি করবে, মিডিয়া সত্তায় তাদের সংযুক্ত করবে এবং সেই মাইগ্রেশনকে নিবন্ধগুলিতে সরিয়ে দেবে (এটি মধ্যবর্তী পদক্ষেপটি সরিয়ে দেয়)। এর অর্থ হ'ল, যদিও মিডিয়া সত্তাগুলি আবার ফিরিয়ে আনা যায়, ফাইল সত্তা পারেনি।