您可以同步什么?
我们的数据库同步功能支持将以下 Dodo Payments 实体同步到您的数据库:支付
同步所有支付交易,包括一次性支付、退款和支付状态更新。
客户
保持客户数据同步,包括客户档案、联系信息和元数据。
订阅
同步订阅数据,包括活跃订阅、计费周期和订阅状态更改。
许可证
同步许可证信息,包括许可证密钥、激活和许可证状态更新。
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:[email protected]/ - 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 密钥。应以
dp_live_ 开头以用于实时模式,或 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 类型。必需属性:
bearerToken:您的 Dodo Payments API 密钥environment:要么是"test_mode",要么是"live_mode"
自动同步之间的时间(以秒为单位)。在使用
.start() 进行自动同步时必需。在使用 .run() 进行手动同步时可选。每秒请求的数量。控制同步引擎向 Dodo Payments API 发出请求的速度,以避免过载。
重要信息
同步引擎跟踪更改,仅同步新的或更新的记录,使后续同步即使在大型数据集上也高效。