الحزمة: dodo-sync على npm | المصدر: GitHub
ماذا يمكنك مزامنته؟
اختر أي مجموعة من هذه الكيانات:Payments
جميع معاملات الدفع، بما في ذلك المدفوعات لمرة واحدة والمبالغ المستردة وتحديثات الحالة.
Customers
ملفات تعريف العملاء ومعلومات الاتصال والبيانات الوصفية.
Subscriptions
بيانات الاشتراكات ودورات الفوترة وتغييرات الحالة.
Licenses
مفاتيح التراخيص وعمليات التفعيل وتحديثات الحالة.
scopes. تجلب كل عملية تشغيل كل سجل في النطاقات المحددة وتكتبه باستخدام معرّفه، لذلك يتم تحديث الصفوف الموجودة في مكانها بدلًا من تكرارها. تتم كتابة كل صفحة من السجلات إلى قاعدة بياناتك في دفعة واحدة.
دعم قاعدة البيانات
يدعم Dodo Sync قواعد بيانات MongoDB وPostgreSQL وMySQL الإصدار 8.0.20 أو الإصدارات الأحدث، وClickHouse. ويجري حاليًا تطوير دعم Snowflake وقواعد البيانات الأخرى وخطوط أنابيب ETL والمزامنة الآنية. للمساهمة بإضافة تكامل جديد مع قاعدة بيانات، أرسل طلب سحب إلى مستودع GitHub.البدء
استخدم Dodo Sync عبر CLI للإعداد السريع، أو برمجيًا ضمن التعليمات البرمجية لديك لدمجه في تطبيقك. توفر كلتا الطريقتين الوظائف نفسها.استخدام CLI
ثبّت CLI بشكل عام لتتمكن من تشغيله من أي مكان:تشغيل CLI
يدعم CLI وضعين: التفاعلي للإعداد الموجّه، واليدوي للإعداد المباشر. الوضع التفاعلي: شغّله من دون وسيطات لبدء معالج الإعداد.وسيطات CLI
الفاصل الزمني للمزامنة بالثواني. يعمل CLI باستمرار وفق هذا الفاصل الزمني. لإجراء مزامنة لمرة واحدة، استخدم
.run() في التعليمات البرمجية.URI الاتصال بقاعدة بياناتك:
- MongoDB:
mongodb://localhost:27017أوmongodb+srv://user:pass@cluster.mongodb.net/ - PostgreSQL:
postgresql://user:password@localhost:5432/mydb - MySQL:
mysql://user:password@localhost:3306/mydb - ClickHouse:
http://localhost:8123
قائمة مفصولة بفواصل بالكيانات المراد مزامنتها:
licences وpayments وcustomers وsubscriptions. مثال: "payments,customers".مفتاح Dodo Payments API الخاص بك من Developer → API Keys. استخدم مفتاحًا من الوضع نفسه مثل
--env.حد معدل الطلبات بالطلبات في الثانية. يتحكم في سرعة إجراء محرك المزامنة لطلبات API. القيمة الافتراضية هي
10؛ وتؤدي القيم التي تساوي 100 أو تزيد عليها إلى إيقاف تحديد المعدل.الاستخدام في التعليمات البرمجية
ادمج ميزة المزامنة مباشرةً في تطبيقك. ثبّتها باعتبارها تبعية:المزامنة التلقائية (المستندة إلى فاصل زمني)
شغّل المزامنة باستمرار وفق فواصل زمنية منتظمة:المزامنة اليدوية
شغّل عمليات المزامنة عند الطلب، مثلًا من مهمة cron أو نقطة نهاية API أو دالة serverless:التشغيل على Serverless
على Vercel أو AWS Lambda أو المنصات المشابهة:- استدعِ
.disconnect()داخل كتلةfinally، كما في المثال أعلاه، حتى لا تبقى الاتصالات مفتوحة بين عمليات الاستدعاء. - استخدم بيئة تشغيل Node.js. لا تستطيع بيئات تشغيل Edge فتح اتصالات بقاعدة البيانات.
- ارفع مهلة الدالة. قد تستغرق المزامنة الكبيرة وقتًا أطول من الحد الافتراضي. على Vercel، اضبط
export const maxDuration = 60;. - زامن عددًا أقل من النطاقات في كل عملية استدعاء، مثل
scopes: ['payments']، للحفاظ على قِصر مدة كل عملية تشغيل.
مثال على PostgreSQL
مثال على MySQL
مثال على ClickHouse
خيارات المُنشئ
سلسلة الاتصال بقاعدة بياناتك:
- MongoDB:
mongodb://localhost:27017أوmongodb+srv://... - PostgreSQL:
postgresql://user:password@localhost:5432/mydb - MySQL:
mysql://user:password@localhost:3306/mydb - ClickHouse:
http://localhost:8123
مصفوفة الكيانات المراد مزامنتها:
"licences" و"payments" و"customers" و"subscriptions". يمكنك تضمين أي مجموعة منها.إعدادات Dodo Payments API. راجع أنواع TypeScript SDK للاطلاع على الخيارات الكاملة.الخصائص المطلوبة:
bearerToken: مفتاح Dodo Payments API الخاص بكenvironment:"test_mode"أو"live_mode"
حد معدل الطلبات في الثانية. القيمة الافتراضية هي
10؛ وتؤدي القيم التي تساوي 100 أو تزيد عليها إلى إيقاف تقييد المعدل.معلومات مهمة
الترقية من الإصدار 0.x
يغيّر الإصدار 1.0 طريقة تخزين بيانات MongoDB ويرفع متطلبات MySQL. قبل الترقية:- MongoDB: احذف مجموعة
licencesالموجودة. تُخزّن مستندات التراخيص الآن باستخدامidالخاص بالترخيص بدلًا منsubscription_id، وستعيد المزامنة التالية تعبئة المجموعة. - MongoDB: تحقّق من URI الاتصال. تُكتب البيانات الآن إلى قاعدة البيانات التي يحددها URI، وليس دائمًا إلى
dodopayments_sync. لمواصلة استخدام بياناتك الحالية، أدرجdodopayments_syncفي URI أو اترك قاعدة البيانات غير محددة. - MySQL: قم بالترقية إلى MySQL الإصدار 8.0.20 أو إصدار أحدث.
موارد إضافية
GitHub Repository
عرض الشيفرة المصدرية أو الإبلاغ عن المشكلات أو المساهمة بالتحسينات
npm Package
عرض تفاصيل الحزمة وتعليمات التثبيت