الحزمة: 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
number
مطلوب
الفاصل الزمني للمزامنة بالثواني. يعمل CLI باستمرار وفق هذا الفاصل الزمني. لإجراء مزامنة لمرة واحدة، استخدم
.run() في التعليمات البرمجية.string
مطلوب
نوع قاعدة البيانات:
"mongodb" أو "postgres" أو "mysql" أو "clickhouse".string
مطلوب
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
string
مطلوب
قائمة مفصولة بفواصل بالكيانات المراد مزامنتها:
licences وpayments وcustomers وsubscriptions. مثال: "payments,customers".string
مطلوب
مفتاح Dodo Payments API الخاص بك من Developer → API Keys. استخدم مفتاحًا من الوضع نفسه مثل
--env.string
مطلوب
البيئة:
"live_mode" أو "test_mode".number
حد معدل الطلبات بالطلبات في الثانية. يتحكم في سرعة إجراء محرك المزامنة لطلبات 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
خيارات المُنشئ
string
مطلوب
نوع قاعدة البيانات:
"mongodb" أو "postgres" أو "mysql" أو "clickhouse".string
مطلوب
سلسلة الاتصال بقاعدة بياناتك:
- MongoDB:
mongodb://localhost:27017أوmongodb+srv://... - PostgreSQL:
postgresql://user:password@localhost:5432/mydb - MySQL:
mysql://user:password@localhost:3306/mydb - ClickHouse:
http://localhost:8123
string[]
مطلوب
مصفوفة الكيانات المراد مزامنتها:
"licences" و"payments" و"customers" و"subscriptions". يمكنك تضمين أي مجموعة منها.object
مطلوب
إعدادات Dodo Payments API. راجع أنواع TypeScript SDK للاطلاع على الخيارات الكاملة.الخصائص المطلوبة:
bearerToken: مفتاح Dodo Payments API الخاص بكenvironment:"test_mode"أو"live_mode"
number
المدة بالثواني بين عمليات المزامنة التلقائية. مطلوبة لـ
.start()، واختيارية لـ .run().number
حد معدل الطلبات في الثانية. القيمة الافتراضية هي
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 أو إصدار أحدث.