Skip to main content
अपने Dodo Payments डेटा को एनालिटिक्स, रिपोर्टिंग और इंटीग्रेशन के लिए अपने डेटाबेस में सिंक करें। सिंक इंजन स्वचालित रूप से payments, customers, subscriptions, और licenses को MongoDB, PostgreSQL, MySQL या ClickHouse में दोहराता है।
पैकेज: npm पर dodo-sync | स्रोत: GitHub

आप क्या-क्या Sync कर सकते हैं?

इन entities का कोई भी संयोजन चुनें:

Payments

सभी payment transactions, जिनमें one-time payments, refunds और status updates शामिल हैं।

Customers

Customer profiles, contact information और metadata।

Subscriptions

Subscription data, billing cycles और status changes।

Licenses

License keys, activations और status updates।
scopes parameter का उपयोग करके निर्दिष्ट करें कि किन entities को sync करना है। प्रत्येक run चुने गए scopes में मौजूद हर record को fetch करता है और उसे ID के आधार पर लिखता है, इसलिए मौजूदा rows को duplicate करने के बजाय वहीं update किया जाता है। MongoDB में license keys को subscription ID के आधार पर store किया जाता है, इसलिए कई license keys वाली subscription में उनमें से केवल एक ही रखी जाती है।

Database Support

Dodo Sync MongoDB, PostgreSQL, MySQL, और ClickHouse को सपोर्ट करता है। Snowflake और अन्य databases, ETL pipelines तथा realtime sync के लिए support का विकास जारी है। नई 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 के चलाएँ।
Manual mode: 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 चलाएँ:
.start() का उपयोग करते समय interval option आवश्यक है। Process रुकने तक sync निर्दिष्ट interval पर लगातार चलता रहता है।

Manual Sync

किसी cron job या API endpoint से, आवश्यकता पड़ने पर sync operations trigger करें:
Manual sync के लिए interval option आवश्यक नहीं है। जब भी sync करना हो, .run() call करें।

PostgreSQL उदाहरण

MySQL उदाहरण

ClickHouse उदाहरण

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 देखें।आवश्यक properties:
  • bearerToken: आपका Dodo Payments API key
  • environment: "test_mode" या "live_mode"
number
Automatic syncs के बीच सेकंड में समय। .start() के लिए आवश्यक, .run() के लिए optional।
number
प्रति सेकंड requests में rate limit। डिफ़ॉल्ट 10 है; 100 या उससे अधिक मान throttling बंद कर देते हैं।

महत्वपूर्ण जानकारी

MongoDB: dodopayments_sync नाम का database आपके server पर स्वचालित रूप से बनाया जाता है। यह database name fixed है और इसे बदला नहीं जा सकता।PostgreSQL: Tables (Subscriptions, Payments, Licenses, Customers) आपके connection URI में निर्दिष्ट database में बनाई जाती हैं। Data को JSONB के रूप में store किया जाता है।MySQL: Tables (Subscriptions, Payments, Licenses, Customers) आपके connection URI में निर्दिष्ट database में बनाई जाती हैं। Data को JSON के रूप में store किया जाता है।ClickHouse: Tables (Subscriptions, Payments, Licenses, Customers) ReplacingMergeTree engine का उपयोग करके बनाई जाती हैं। Query करते समय deduplicated results सुनिश्चित करने के लिए FINAL keyword का उपयोग करें।

अतिरिक्त resources

GitHub Repository

Source code देखें, issues report करें या improvements में योगदान दें

npm Package

Package details और installation instructions देखें
अंतिम संशोधन 26 सितंबर 2026