إضافة دالة `get_like` إلى فئة PluginStore

كما ذكر @eviltrout، نحن نستخدم هجرات الجداول المخصصة في عدد من الإضافات حاليًا، وقد حققت نجاحًا كبيرًا. إن القدرة على فرض قيود قاعدة البيانات ساعدت في تحسين الأداء (عمليات البحث في أي عمود) وسلامة البيانات (من خلال الفهارس الفريدة). وقد أثبت هذان العاملان أهميتهما خاصة على نطاق بعض عملائنا المستضافين - وهو أمر لم أكن أعتبره حقًا قبل انضمامي إلى الفريق.

أول إضافة كبيرة عملت عليها كانت chat-integration، وقمت بتنفيذ ما يُعرف بـ “fake activerecord” معقد جدًا يعتمد على متجر الإضافات. وبالنظر إلى الوراء، كان من الأفضل بكثير استخدام جداول مخصصة، وقد أفكر في هجرة هذه الإضافة إلى هذا النهج في المستقبل.

أتفق معك عندما يتعلق الأمر بتعديل جداول النواة. إضافة أو تعديل أعمدة في جداول موجودة قد تكون لها عواقب غير مقصودة لاحقًا، وستظل موجودة حتى لو تم إلغاء تثبيت الإضافة. وأوصي بشدة بعدم القيام بذلك.

أما الجداول المخصصة، فمن ناحية أخرى، فهي منخفضة المخاطر نسبيًا. إذا تم إلغاء تثبيت الإضافة، فستظل هذه الجداول موجودة دون أي آثار جانبية سلبية (طالما أنك لا تُدخل أي قيود مفاتيح أجنبية). ترك البيانات مبعثرة ليس “أسوأ” من استخدام متجر الإضافات.

من حيث التنظيف، يمكننا النظر في توفير مهام rake تعكس هجرات الإضافات لتنظيف البيانات. ولكن بصراحة، لا أعتقد أن هذا سيستخدم كثيرًا. افتراضي هو أن الناس نادرًا ما يقومون بإلغاء تثبيت الإضافات، وعندما يفعلون ذلك، يفضلون الاحتفاظ بالبيانات في حالة رغبتهم في إعادة تثبيتها مرة أخرى.