Package:npm 上的 dodo-sync | Source:GitHub
您可以同步什么?
选择这些实体的任意组合:Payments
所有支付交易,包括一次性支付、退款和状态更新。
Customers
客户资料、联系信息和元数据。
Subscriptions
订阅数据、计费周期和状态变更。
Licenses
许可证密钥、激活信息和状态更新。
scopes 参数指定要同步的实体。每次运行都会获取所选范围内的每条记录,并按 ID 写入,因此现有行会就地更新,而不会产生重复项。每一页记录都会以单个批次写入您的数据库。
数据库支持
Dodo Sync 支持 MongoDB、PostgreSQL、MySQL 8.0.20 或更高版本,以及 ClickHouse。Snowflake 和其他数据库、ETL 管道以及实时同步功能正在开发中。 如要贡献新的数据库集成,请向 GitHub repository 提交 pull request。开始使用
您可以通过 CLI 使用 Dodo Sync 进行快速设置,也可以在代码中以编程方式使用,以便集成到您的应用程序中。两种方式提供相同的功能。使用 CLI
全局安装 CLI,以便从任意位置运行:运行 CLI
CLI 支持两种模式:用于引导设置的 interactive,以及用于直接配置的 manual。 Interactive mode:不带参数运行,以启动设置向导。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
必填
您的 Dodo Payments API key,位于 Developer → API Keys。请使用与
--env 相同模式的 key。string
必填
环境:
"live_mode" 或 "test_mode"。number
每秒请求数的速率限制。用于控制同步引擎发出 API 请求的速度。默认为
10;设置为 100 或更高值可关闭限流。在代码中使用
将同步功能直接集成到您的应用程序中。将其作为依赖项安装:自动同步(基于间隔)
按固定间隔持续运行同步:手动同步
按需触发同步操作,例如从 cron 作业、API 端点或 serverless 函数触发:在 Serverless 环境中运行
在 Vercel、AWS Lambda 或类似平台上:- 在
finally块中调用.disconnect(),如上面的示例所示,这样连接不会在调用之间保持打开状态。 - 使用 Node.js runtime。Edge runtimes 无法打开数据库连接。
- 延长函数超时时间。大型同步可能需要比默认限制更长的时间。在 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 keyenvironment:"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。若要继续使用现有数据,请在 URI 中加入dodopayments_sync,或不指定数据库。 - MySQL:升级到 MySQL 8.0.20 或更高版本。
其他资源
GitHub Repository
查看源代码、报告问题或贡献改进
npm Package
查看软件包详情和安装说明