同期できるデータ
次のエンティティから任意の組み合わせを選択します:Payments
1回限りの決済、返金、ステータス更新を含む、すべての決済トランザクション。
Customers
顧客プロフィール、連絡先情報、メタデータ。
Subscriptions
サブスクリプションデータ、請求サイクル、ステータス変更。
Licenses
ライセンスキー、アクティベーション、ステータス更新。
scopes パラメータを使用して、同期するエンティティを指定します。各実行では、選択したスコープ内のすべてのレコードを取得し、IDで書き込むため、既存の行は重複せず、その場で更新されます。レコードの各ページは、単一のバッチでデータベースに書き込まれます。
Database Support
Dodo Sync は MongoDB、PostgreSQL、8.0.20 以降の MySQL、および ClickHouse をサポートしています。Snowflake やその他のデータベース、ETL パイプライン、リアルタイム同期のサポートは開発中です。 新しいデータベースインテグレーションに貢献するには、GitHub リポジトリにプルリクエストを送信してください。はじめに
すばやくセットアップするには CLI で Dodo Sync を使用し、アプリケーションに統合するにはコードからプログラムで使用します。どちらの方法でも同じ機能を利用できます。CLI の使用
どこからでも実行できるように CLI をグローバルにインストールします:CLI の実行
CLI は 2 つのモードをサポートしています。ガイド付きセットアップを行う 対話モード と、直接設定する 手動モード です。 対話モード: 引数なしで実行すると、セットアップウィザードが開始します。CLI 引数
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
必須
Developer → API Keys にある Dodo Payments API キー。同じモードのキーを
--env として使用してください。string
必須
環境:
"live_mode" または "test_mode"。number
1 秒あたりのリクエスト数による Rate limit。同期エンジンが API リクエストを実行する速度を制御します。デフォルトは
10 です。100 以上の値を指定すると、スロットリングが無効になります。コードでの使用
同期機能をアプリケーションに直接統合します。依存関係としてインストールします:自動同期(インターバルベース)
一定の間隔で同期を継続的に実行します:手動同期
cron ジョブ、API エンドポイント、サーバーレス関数などから、必要に応じて同期操作をトリガーします。Serverless での実行
Vercel、AWS Lambda、または同様のプラットフォームの場合:- 上記の例のように、
.disconnect()をfinallyブロック内で呼び出し、呼び出し間で接続が開いたままにならないようにします。 - Node.js ランタイムを使用してください。Edge ランタイムではデータベース接続を開けません。
- 関数のタイムアウトを延長してください。大規模な同期には、デフォルトの制限時間を超える場合があります。Vercel では、
export const maxDuration = 60;を設定します。 - 1回の呼び出しで同期するスコープを減らします。たとえば
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 types を参照してください。必須プロパティ:
bearerToken:Dodo Payments API キーenvironment:"test_mode"または"live_mode"
number
自動同期の間隔(秒)。
.start() では必須、.run() では任意です。number
1秒あたりのリクエスト数のレート制限。デフォルトは
10 です。100 以上の値を指定すると、スロットリングが無効になります。重要な情報
0.x からのアップグレード
バージョン 1.0 では、MongoDB データの保存方法が変更され、MySQL の要件が引き上げられています。アップグレードする前に、次の点を確認してください。- MongoDB:既存の
licencesコレクションを削除します。ライセンスドキュメントは、現在はsubscription_idではなくライセンスのidによって保存され、次回の同期でコレクションに再作成されます。 - MongoDB:接続 URI を確認します。データは常に
dodopayments_syncに書き込まれるのではなく、URI で指定されたデータベースに書き込まれるようになりました。既存のデータを引き続き使用するには、URI にdodopayments_syncを含めるか、データベースの指定を省略してください。 - MySQL:MySQL 8.0.20 以降にアップグレードします。
追加リソース
GitHub Repository
ソースコードの閲覧、問題の報告、改善への貢献
npm Package
パッケージの詳細とインストール手順の確認