पैकेज: npm पर dodo-sync | स्रोत: GitHub
आप क्या-क्या Sync कर सकते हैं?
इन entities का कोई भी संयोजन चुनें:Payments
Customers
Subscriptions
Licenses
scopes पैरामीटर का उपयोग करके निर्दिष्ट करें कि किन entities को sync करना है। प्रत्येक run चयनित scopes में मौजूद हर record को fetch करता है और उसे ID के आधार पर लिखता है, इसलिए मौजूदा rows को duplicate करने के बजाय वहीं update किया जाता है। Records के प्रत्येक page को आपके database में एक single batch में लिखा जाता है।
Database Support
Dodo Sync MongoDB, PostgreSQL, MySQL 8.0.20 या उसके बाद के versions और ClickHouse को support करता है। Snowflake और अन्य databases, ETL pipelines तथा realtime sync के लिए support development में है। नई database integration में योगदान देने के लिए GitHub repository में pull request सबमिट करें।शुरुआत करना
त्वरित setup के लिए Dodo Sync को CLI के माध्यम से या अपने application में integration के लिए अपने code में programmatically उपयोग करें। दोनों methods समान functionality प्रदान करते हैं।CLI का उपयोग करना
CLI को globally install करें ताकि इसे कहीं से भी चला सकें:CLI चलाना
CLI दो modes सपोर्ट करता है: guided setup के लिए interactive, और direct configuration के लिए manual। Interactive mode: setup wizard शुरू करने के लिए बिना arguments के चलाएँ।CLI arguments
number
आवश्यक
सेकंड में sync interval। CLI इसी interval पर लगातार चलता है। One-time sync के लिए अपने code में
.run() का उपयोग करें।string
आवश्यक
Database type:
"mongodb", "postgres", "mysql", या "clickhouse"।string
आवश्यक
आपके database का connection 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
आवश्यक
Sync की जाने वाली entities की comma-separated list:
licences, payments, customers, subscriptions। उदाहरण: "payments,customers"।string
आवश्यक
Developer → API Keys से प्राप्त आपका Dodo Payments API key। उसी mode की key का उपयोग करें जिस mode में
--env है।string
आवश्यक
Environment:
"live_mode" या "test_mode"।number
प्रति सेकंड requests में rate limit। यह नियंत्रित करता है कि sync engine कितनी तेज़ी से API requests करता है। डिफ़ॉल्ट
10 है; 100 या उससे अधिक मान throttling बंद कर देते हैं।अपने code में उपयोग करना
Sync feature को सीधे अपने application में integrate करें। इसे dependency के रूप में install करें:Automatic Sync (Interval-based)
नियमित intervals पर लगातार sync चलाएँ:Manual Sync
sync operations को on-demand trigger करें, जैसे किसी cron job, API endpoint या serverless function से:Serverless पर चलाना
Vercel, AWS Lambda या इसी तरह के platforms पर:.disconnect()कोfinallyblock में call करें, जैसा कि ऊपर दिए गए example में है, ताकि invocations के बीच connections खुले न रहें।- Node.js runtime का उपयोग करें। Edge runtimes database connections open नहीं कर सकते।
- Function timeout बढ़ाएँ। बड़े sync को default limit से अधिक समय लग सकता है। Vercel पर
export const maxDuration = 60;सेट करें। - प्रत्येक invocation में कम scopes sync करें, जैसे
scopes: ['payments'], ताकि हर run छोटा रहे।
PostgreSQL Example
MySQL Example
ClickHouse Example
Constructor Options
string
आवश्यक
Database type:
"mongodb", "postgres", "mysql" या "clickhouse"।string
आवश्यक
आपके database के लिए connection 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[]
आवश्यक
sync करने के लिए entities का array:
"licences", "payments", "customers", "subscriptions"। किसी भी combination को शामिल करें।object
आवश्यक
Dodo Payments API configuration। सभी options के लिए TypeScript SDK types देखें।Required properties:
bearerToken: आपकी Dodo Payments API keyenvironment:"test_mode"या"live_mode"
number
automatic syncs के बीच seconds में समय।
.start() के लिए required और .run() के लिए optional।number
requests per second में rate limit। Default रूप से
10; 100 या उससे अधिक values throttling बंद कर देती हैं।महत्वपूर्ण जानकारी
0.x से upgrade करना
Version 1.0 MongoDB data store करने का तरीका बदलता है और MySQL requirement बढ़ाता है। Upgrade करने से पहले:- MongoDB: अपनी मौजूदा
licencescollection को drop करें। License documents अबsubscription_idके बजाय licenseidके आधार पर store किए जाते हैं और अगला sync collection को फिर से populate कर देगा। - MongoDB: अपना connection URI जाँचें। Data अब URI में निर्दिष्ट database में लिखा जाता है, हमेशा
dodopayments_syncमें नहीं। अपने मौजूदा data का उपयोग जारी रखने के लिए URI मेंdodopayments_syncडालें या database को छोड़ दें। - MySQL: MySQL 8.0.20 या उसके बाद के version पर upgrade करें।