Skip to content

Commit b142d21

Browse files
authored
fix: cherry-pick from 2.0.25 (#445)
* fix: parallel extractor infinite loop (#443) * fix: parallel snapshot bug * fix: parallel extractor error handler * fix: quick quit when no object to fetch in snapshot * chore: add doc for 2.0.25 & fix test pre release (#444) * chore: update changelog * fix: struct test * fix: pg test * fix: mysql cdc ddl test * fix: mysql cdc test about empty binlogoffset * chore: add community * chore: readme config update * chore: release ci add changelog.md * chore: fix release ci * chore: fix release ci cross build * chore: mysql cdc script update
1 parent 8d72bdb commit b142d21

File tree

29 files changed

+252
-126
lines changed

29 files changed

+252
-126
lines changed

.github/workflows/build_and_release.yml

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ on:
1111
description: 'JSON array of target platforms to build [{"os": "ubuntu-latest", "target": "x86_64-unknown-linux-gnu"}, ...]'
1212
required: true
1313
default: '[{"os": "ubuntu-latest", "target": "x86_64-unknown-linux-gnu"}, {"os": "ubuntu-latest", "target": "aarch64-unknown-linux-gnu"}, {"os": "macos-latest", "target": "x86_64-apple-darwin"}]'
14-
14+
env:
15+
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
1516
jobs:
1617
build:
1718
name: Build ${{ matrix.target }}
@@ -29,7 +30,7 @@ jobs:
2930
- name: Get Release Upload URL
3031
id: get_upload_url
3132
run: |
32-
tag_info=$(curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
33+
tag_info=$(curl -H "Authorization: token ${{ env.GITHUB_TOKEN }}" \
3334
"https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ inputs.tag_name }}")
3435
echo "tag_info: ${tag_info}"
3536
upload_url=$(echo $tag_info | jq -r '.upload_url')
@@ -55,14 +56,13 @@ jobs:
5556
- name: Cross build
5657
if: matrix.target == 'x86_64-unknown-linux-gnu' || matrix.target == 'aarch64-unknown-linux-gnu' || matrix.target == 'x86_64-pc-windows-gnu'
5758
run: |
58-
cargo install cross --git https://github.com/cross-rs/cross
59-
cross build --release --target=${{ matrix.target }}
59+
cross build --release --target=${{ matrix.target }} --features metrics
6060
6161
- name: Local build
6262
if: matrix.target == 'x86_64-apple-darwin'
6363
run: |
6464
rustup target add ${{ matrix.target }}
65-
cargo build --release --features metrics --target=${{ matrix.target }}
65+
cargo build --release --target=${{ matrix.target }} --features metrics
6666
6767
- name: Create release artifact
6868
run: |
@@ -81,3 +81,14 @@ jobs:
8181
asset_content_type: application/gzip
8282
env:
8383
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
84+
85+
- name: Upload CHANGELOG
86+
if: matrix.target == 'x86_64-unknown-linux-gnu'
87+
uses: actions/upload-release-asset@v1
88+
with:
89+
upload_url: ${{ env.UPLOAD_URL }}
90+
asset_path: CHANGELOG.md
91+
asset_name: CHANGELOG.md
92+
asset_content_type: text/markdown
93+
env:
94+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CHANGELOG.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,44 @@
11
# Changelog
2+
23
All notable changes to this project will be documented in this file.
34

45
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
56
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
67

7-
## [Unreleased]
8+
## [2.0.25] - 2025-12-11
89

910
### Added
10-
- Add tests to ensure FalkorDB Graphs are correctly handled
11+
12+
- [[386]](https://github.com/apecloud/ape-dts/pull/386) - feat: [MySQL] add basic DCL support in CDC
13+
- [[388]](https://github.com/apecloud/ape-dts/pull/388) - feat: [PG] add RBAC migration support in struct step
14+
- [[391]](https://github.com/apecloud/ape-dts/pull/391) - feat: [Redis] add support for Redis 7.4 & 8.0 with restore method
15+
- [[397]](https://github.com/apecloud/ape-dts/pull/397) - feat: add Prometheus-style metrics API for HTTP server
16+
- [[411]](https://github.com/apecloud/ape-dts/pull/411) - feat: add raw regex string support for filters
17+
- [[436]](https://github.com/apecloud/ape-dts/pull/436) - feat: add batch extraction for multi-PK/UK tables
18+
- [[431]](https://github.com/apecloud/ape-dts/pull/431) - feat: [PG] && [MySQL] add resume from database support
19+
- [[440]](https://github.com/apecloud/ape-dts/pull/440) - feat: [MySQL] add transaction isolation level setting for sinker
20+
21+
### Changed
22+
23+
- [[385]](https://github.com/apecloud/ape-dts/pull/385) - improve: [MySQL] aggregate B-tree indexes in ALTER TABLE statements
24+
- [[393]](https://github.com/apecloud/ape-dts/pull/393) - improve: replace std crates with tokio crates in async functions
25+
- [[389]](https://github.com/apecloud/ape-dts/pull/389) - chore: adjust project compilation configuration
26+
- [[412]](https://github.com/apecloud/ape-dts/pull/412) - improve: add concurrency control options for struct tasks
27+
- [[428]](https://github.com/apecloud/ape-dts/pull/428) - improve: enable connection pool sharing across multiple tasks
28+
- [[438]](https://github.com/apecloud/ape-dts/pull/438) - improve: use yield instead of sleep
29+
30+
### Fixed
31+
32+
- [[372]](https://github.com/apecloud/ape-dts/pull/372) - fix: structure migration from MySQL to StarRocks/Doris
33+
- [[375]](https://github.com/apecloud/ape-dts/pull/375) - fix: column case-sensitivity issue when migrating data from MySQL to Doris/StarRocks
34+
- [[379]](https://github.com/apecloud/ape-dts/pull/379) - fix: char/varchar type length handling in MySQL table structure migration
35+
- [[384]](https://github.com/apecloud/ape-dts/pull/384) - fix: [StarRocks] sinker connection closing issue
36+
- [[384]](https://github.com/apecloud/ape-dts/pull/384) - fix: rdb_merger support for MySQL to StarRocks/Doris
37+
- [[437]](https://github.com/apecloud/ape-dts/pull/437) - fix: [MySQL] binlog dump socket keepalive support
38+
- [[413]](https://github.com/apecloud/ape-dts/pull/413) - fix: [PG] bytea handling for invalid UTF-8 characters
39+
- [[420]](https://github.com/apecloud/ape-dts/pull/420) - fix: [MySQL] BLOB/TEXT B-tree index in table structure migration
40+
- [[422]](https://github.com/apecloud/ape-dts/pull/422) - fix: [PG] index creation failure when using WHERE clause
41+
- [[400]](https://github.com/apecloud/ape-dts/pull/400) - fix: [Redis] decode username and password fields in Redis client authentication
42+
- [[403]](https://github.com/apecloud/ape-dts/pull/403) - fix: [MySQL] CURRENT_TIMESTAMP handling in table structure
43+
- [[407]](https://github.com/apecloud/ape-dts/pull/407) - fix: [PG] OID fetch SQL handling for special characters in table names
44+
- [[443]](https://github.com/apecloud/ape-dts/pull/443) - fix: [MySQL] parallel extractor infinite loop

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
- ape-dts is a data migration tool enabling any-to-any data transfers.
66
- It also provides data subscription and data processing.
77
- It is lightweight, efficient and standalone, requiring no third-party components or extra storage.
8+
- Designed for cloud-native stateless component scenarios.
89
- In Rust.
910

1011
## Key features
@@ -172,6 +173,11 @@ Refer to [test docs](./dt-tests/README.md) for details.
172173

173174
- run `cargo clippy --all-targets --all-features --workspace` fix all clippy issues.
174175

175-
# Contact us
176+
## Community
176177

177-
[Slack Community](https://join.slack.com/t/kubeblocks/shared_invite/zt-22cx2f84x-BPZvnLRqBOGdZ_XSjELh4Q)
178+
If you have any questions, you can reach out to us through:
179+
180+
- ApeDTS GitHub [Discussions](https://github.com/apecloud/ape-dts/discussions)
181+
- ApeDTS Wechat Account with note **ape-dts**:
182+
183+
<img src=".\docs\img\wechat-assistant.png" alt="wechat" width="100" height="100" style="margin-top:10px">

README_ZH.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
- ape-dts 是一款旨在实现 any-to-any 的数据迁移工具,并具有数据订阅和数据加工能力。
66
- 简单、轻量、高效,不依赖第三方组件和额外存储。
7+
- 面向云原生无状态组件场景设计
78
- 使用 Rust。
89

910
## 主要特性
@@ -19,8 +20,6 @@
1920

2021
目前支持的成熟任务类型:
2122

22-
<br/>
23-
2423
| | mysql -> mysql | pg -> pg | mongo -> mongo | redis -> redis | mysql -> kafka | pg -> kafka | mysql -> starrocks | mysql -> clickhouse | mysql -> tidb | pg -> starrocks | pg -> clickhouse | mysql -> doris | pg -> doris |
2524
| :----------------- | :------------- | :------- | :------------- | :------------- | :------------- | :---------- | :----------------- | :------------------ | :------------ | :-------------- | :--------------- | :------------- | :---------- |
2625
| 全量迁移 | &#10004; | &#10004; | &#10004; | &#10004; | &#10004; | &#10004; | &#10004; | &#10004; | &#10004; | &#10004; | &#10004; | &#10004; | &#10004; |
@@ -174,6 +173,11 @@ dt-main crate 提供了几个可选组件,可以通过 `Cargo [features]` 启
174173

175174
- 执行 `cargo clippy --all-targets --all-features --workspace` 并修复所有警告
176175

177-
# 技术交流
176+
## 社区
177+
178+
如有任何问题,欢迎通过以下方式联系我们:
179+
180+
- ApeDTS GitHub [讨论区](https://github.com/apecloud/ape-dts/discussions)
181+
- ApeDTS 微信公众号,添加时请备注 **ape-dts**
178182

179-
[Slack 社区](https://join.slack.com/t/kubeblocks/shared_invite/zt-22cx2f84x-BPZvnLRqBOGdZ_XSjELh4Q)
183+
<img src=".\docs\img\wechat-assistant.png" alt="wechat" width="100" height="100" style="margin-top:10px">

0 commit comments

Comments
 (0)