نقوم بتشغيل منتديات Discourse متعددة كنسخ معزولة على نفس الجهاز الافتراضي. كل منتدى له قاعدة بيانات Postgres منفصلة خاصة به، ولكنها جميعًا مُدارة بواسطة برنامج نصي مشترك يعمل على الجهاز المضيف.
نتطلع إلى أتمتة إنشاء المستخدمين الأوليين أثناء الإعداد. بدلاً من استخدام واجهة برمجة التطبيقات (API) أو مستورد CSV، نتساءل:
هل من الممكن (وآمن) إدخال سجلات المستخدمين مباشرة في قاعدة بيانات كل نسخة؟
نظرًا لأن البرنامج النصي الخاص بنا يتفاعل بالفعل مع قواعد البيانات، فقد يؤدي ذلك إلى تبسيط عملية التزويد بشكل كبير.
هل حاول أي شخص إنشاء مستخدمين مباشرة في قاعدة البيانات من قبل؟ أم أن هذه فكرة سيئة بسبب المخاطر المتعلقة بسلامة البيانات أو الجلسات أو آليات Discourse الأخرى الخاصة؟
من الأسلم قليلاً أن يقوم Rails بذلك بدلاً من تعديل قاعدة البيانات بنفسك، ولكن يمكنك القيام بذلك إذا أردت. لاحظ أنه يجب عليك لمس جدولي المستخدم (user) ورسائل البريد الإلكتروني للمستخدم (user_emails) على الأقل، والتأكد من تطابق معرفات المستخدم (user_ids).
شكرًا، @pfaffman — أقدر حقًا التوجيه!\n\nللتوضيح فقط: أحد الأسباب الرئيسية لاستكشافنا لهذا المسار هو أن كلتا الطريقتين، CSV وطريقة واجهة برمجة التطبيقات (API)، بطيئتان جدًا لما نحاول القيام به. نحن نقوم بتشغيل العديد من المثيلات المعزولة ونحتاج إلى ملء كل منها بمجموعة من المستخدمين بسرعة أثناء التزويد.\n\nهل س يسمح نهج الإضافات/المكونات الإضافية الذي ذكرته بإنشاء مستخدمين أسرع بكثير مقارنة بطرق واجهة برمجة التطبيقات (API) أو CSV؟ على وجه التحديد، نأمل في تقليل وقت الانتظار أثناء الإعداد — بشكل مثالي شيء ينفذ فورًا أو شبه فوري مع إعداد قاعدة البيانات الأولي.\n\nشكرًا مرة أخرى!
يمكنك الاطلاع على نصوص الاستيراد المجمعة للحصول على أمثلة لتحديث قاعدة البيانات مباشرة. يحتوي نص الاستيراد على بعض الحمل الإضافي، لذا ربما يكون المثال الموجود في التركيبات أسرع؟
كم عدد المستخدمين الذين تضيفهم؟ هل لديك نفس المستخدمين لكل موقع؟