实现方式:通过 npm package 提供 | 源码:GitHub
您可以同步什么?
我们的数据库同步功能支持将以下 Dodo Payments 实体同步到您的数据库:Payments
同步所有支付交易,包括一次性支付、退款和支付状态更新。
Customers
保持客户数据同步,包括客户资料、联系方式和元数据。
Subscriptions
同步订阅数据,包括活跃订阅、计费周期和订阅状态变更。
Licenses
同步许可证信息,包括许可证密钥、激活记录和许可证状态更新。
scopes 参数中指定这些实体的任意组合来同步。所有同步操作都是增量的,只传输新的或已更新的记录,以实现最佳性能。
数据库支持
我们目前支持 MongoDB、PostgreSQL、MySQL 和 ClickHouse。 我们正在积极扩展对以下内容的支持:- 数据库:Snowflake 和其他。
- 管道:ETL 管道、实时同步。
开始使用
您可以通过 CLI 或在您的 代码 中以编程方式使用我们的数据库同步功能。这两种方法提供相同的功能——选择最适合您工作流程的方法。使用 CLI
CLI 工具提供了一种快速设置和运行数据库同步的方法。全局安装它,以便在终端的任何地方使用:运行 CLI
CLI 支持两种模式:交互模式用于引导设置,手动模式用于直接配置。 交互模式:只需运行命令而不带参数即可启动交互式设置向导。CLI 参数
同步间隔(秒)。决定同步操作的运行频率。如果未提供,同步将运行一次后退出。
要使用的数据库类型。支持的值:
"mongodb"、"postgres"、"mysql" 或 "clickhouse"。数据库的连接 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
逗号分隔的数据实体列表。可用范围:
licences、payments、customers、subscriptions。例如:"payments,customers"。您的 Dodo Payments API 密钥。用于 live 模式的密钥应以
dp_live_ 开头,用于 test 模式的密钥应以 dp_test_ 开头。目标环境。必须是
"live_mode" 或 "test_mode" 之一。这决定了要同步哪个 Dodo Payments 环境。请求速率限制(每秒请求数)。控制同步引擎调用 Dodo Payments API 的速率,以避免请求过载。
在您的代码中使用
要进行编程控制,请将同步功能直接集成到您的应用程序中。将其作为依赖项安装到您的项目中:自动同步(基于间隔)
当您希望同步在固定间隔内持续运行时,请使用自动同步:手动同步
当您希望按需触发同步操作(例如,从 cron 作业或 API 端点)时,请使用手动同步:PostgreSQL 示例
以下是如何将dodo-sync 与 PostgreSQL 一起使用:
MySQL 示例
以下是如何将dodo-sync 与 MySQL 一起使用:
ClickHouse 示例
以下是如何将dodo-sync 与 ClickHouse 一起使用:
构造函数选项
要使用的数据库名称。支持的值:
"mongodb"、"postgres"、"mysql" 或 "clickhouse"。数据库的连接字符串:
- MongoDB:
mongodb://localhost:27017或mongodb+srv://... - PostgreSQL:
postgresql://user:password@localhost:5432/mydb - MySQL:
mysql://user:password@localhost:3306/mydb - ClickHouse:
http://localhost:8123
要同步的实体数组。可用选项:
"licences"、"payments"、"customers"、"subscriptions"。您可以组合任意选项。用于验证和环境选择的 Dodo Payments API 配置。完整选项请参阅 TypeScript SDK types。必填属性:
bearerToken:您的 Dodo Payments API 密钥environment:"test_mode"或"live_mode"之一
自动同步之间的时间间隔(秒)。使用
.start() 进行自动同步时为必填。使用 .run() 进行手动同步时为可选。每秒请求数量。控制同步引擎调用 Dodo Payments API 的速率,以避免过载。
重要信息
同步引擎会追踪更改,并且仅同步新的或已更新的记录,即使在处理大数据集时也能让后续同步高效。