لكن… ربما يكون هذا هو المكان الذي أتيه فيه: لكي أستدعي واجهة برمجة التطبيقات (API)، أحتاج إلى مفتاح واجهة برمجة التطبيقات. وبالتالي إلى مستخدم مسؤول… وهو ما لا أملكه (بعد). هل من الممكن استدعاء واجهة برمجة التطبيقات دون مفتاح؟ أم الحصول على مفتاح غير مرتبط بمستخدم ويتمتع ببيانات اعتماد المسؤول؟
يبدو أنه يجب علي استخدام rake:admin لإنشاء مستخدم المسؤول. بل أعتقد أن مستخدم المسؤول قد تم إنشاؤه بالفعل ولكنه غير معتمد، لذا سأحتاج إلى تغييره ليصبح معتمدًا.
أو ربما يمكنني إنشاء مفتاح API باستخدام api_key:create_master واستخدامه لإنشاء مستخدم المسؤول؟
لكن يبدو أنني لا أفهم تمامًا كيفية استخدام هذا المفتاح الرئيسي لأن هذا لا يعمل:
# curl -X GET "https://forum2/categories" -H "Accept: application/json" -H "Api-Key: ad676e7413778aa3a5d315c35f91ef0edb4a4d4b2d644b924b7a88421cfa"
{"errors":["You are not permitted to view the requested resource. The API username or key is invalid."],"error_type":"invalid_access"}
ومع ذلك، إذا قمت بإنشاء مستخدم مسؤول:
root@forum:/var/www/discourse# RAILS_DB=secondsite rake 'admin:create'
Email: loic@dachary.org
Password:
Repeat password:
Ensuring account is active!
Account created successfully with username loic
Do you want to grant Admin privileges to this account? (Y/n) Y
Your account now has Admin privileges!
ثم استخدمت نفس المفتاح الرئيسي مع تحديد المستخدم الذي تم إنشاؤه حديثًا، فقد عمل الأمر:
إذا كان ذلك حدثًا لمرة واحدة، لكان ذلك مقبولاً. لكنني أريد أن أتمكن من اختبار سكريبت الاستيراد. ولتنفيذ الاختبار، يجب أولاً إنشاء نظام Discourse من الصفر. دون الحاجة إلى أي تدخل يدوي في منتصف الاختبار الآلي
أعتمد بشكل كبير في معيشتي على الاستيراد. وأنا متأكد إلى حد كبير أن ما سأصفه أدناه هو الطريقة التي يتبعها تقريبًا كل من يعمل بالاستيراد بانتظام.
ما أنصح به هو:
تكوين وتشغيل أداة الاستيراد
اختبار أنها تقوم بما تريده
كتابة سكريبت لإعادة تشغيل أداة الاستيراد لاستيراد البيانات التي تم الحصول عليها منذ التشغيل الأول
اختبار ذلك
تشغيل الاستيراد النهائي عندما تعمل كل الخطوات المذكورة أعلاه
استعادة هذه البيانات إلى خادم الإنتاج
تختلف مهمة الهجرة تمامًا عن مهمة إعداد خادم الإنتاج، ولهما متطلبات مختلفة. عادةً ما تتطلب مهمة الهجرة أدوات لا يحتاجها خادم الإنتاج (لكنني أعتقد أن أداة استيراد Mailmain استثناء).
يبدو أن تشغيل عملية هجرة على خادم متعدد المواقع أمر غير حكيم بشكل خاص.
هذا سبب إضافي يجعل إعادة تشغيل الاستيراد من البداية فكرة سيئة. فمن المرجح أن يستغرق الأمر أسابيع. عند إعادة تشغيل أداة الاستيراد، فإنها تستورد فقط البيانات الجديدة (وغالبًا ما أقوم بتعديلها لتتخطى البيانات القديمة تمامًا).
يمكنك على الأرجح تعديل السكربت لاستخدام فئة موجودة عن طريق إنشاء حقل مخصص للفئة (CategoryCustomField). أنصحك بالبدء بقاعدة بيانات فارغة والسماح للسكربت بإنشائها، ثم يمكنك تخصيصها كما تشاء. وعند إعادة تشغيل السكربت، سيستمر في استخدامها.
الخطر الحقيقي في استيرادك هو أنه من المرجح أن توجد اختلافات في البيانات عبر السنوات، لذا فإن ما يعمل مع بيانات عمرها 10 سنوات قد لا يعمل مع بيانات عمرها 5 سنوات وهكذا. لكن ربما تحالف معك الحظ.
لا أدري ما إذا كان ذلك يُعتبر مديحًا
أنا دائمًا أستخدم النظام متعدد المواقع للاستيراد. فهو يسمح بوجود منتديات متعددة جنبًا إلى جنب: واحد أقوم بتعديلاته بينما يمكن للعميل مراجعة عملية الاستيراد في المنتدى المجاور. كما أنه من السهل نسخ قاعدة البيانات للبدء من نقطة معينة مرة أخرى.
حسنًا، لقد صدمتني تمامًا! أنت تقريبًا الشخص الوحيد على كوكب الأرض الذي لا يعمل لدى CDCK والذي أعتقد أنه يعرف أكثر عني حول الاستيرادات، وإذا كنت تستخدم النظام متعدد المواقع للاستيرادات، حسنًا، سأفكر في فعل الشيء نفسه. أنا عادةً أطلق حاويات منفصلة على نفس المضيف مع traefik في المقدمة، لذا أعتقد أن الأمر مشابه إلى حد ما، لكن ليس تمامًا.