Aquesta és una versió anterior. La versió actual és la 0.137.1. sluice 0.137.1 · Data de publicació:
Fitxers d’instal·lació 0.134.0
| Arquitectura | Tipus | Àmbit | Mida del fitxer | Baixa | SHA256 |
|---|---|---|---|---|---|
| 64 bits | ZIP → Portable · en-US | — | — | github.com | VirusTotal |
| ARM64 | ZIP → Portable · en-US | — | — | github.com | VirusTotal |
L’enllaç i l’SHA256 provenen del manifest comunitari del Gestor de paquets del Windows. Convé comparar el hash del fitxer baixat abans d’executar-lo.
Notes de la versió
The consistency-and-hygiene release. The headline is a deliberate behavior change:a mid-sync `timestamp ⇄ timestamptz` column swap now **refuses** under the default `--schema-changes=forward` instead of silently forwarding — the rewritten values depend on the source ALTER session's `TimeZone`, which the replication wire does not carry, so the target's identical cast can silently diverge. Its sibling (`time ⇄ timetz`) already refused; the session-TZ-cast class now has one posture. Plus seven audit-filed hygiene items, all mutation-verified.
## Changed
**`timestamp ⇄ timestamptz` mid-stream swaps refuse under forward mode** (`cdc_relations.go`, the `sessionTZSwapPair` predicate, both directions, refusal naming the source-vs-target session-TimeZone mechanism and the drained-model remedy). Precision-only temporal changes (`timestamp(6)→(3)` etc.) forward and converge exactly as before — pinned. sluice's applier does not pin a session TimeZone, and a target-side pin could not close the hazard anyway (the source ALTER session's zone is not on the wire) — recorded in ADR-0091. Honest residuals filed, not fixed:the ARRAY variants (`time[] ⇄ timetz[]`, `timestamp[] ⇄ timestamptz[]`) still forward with the same per-element hazard, and MySQL's `timestamp ⇄ datetime` MODIFY is the other lane's class analogue — both are design-scoped follow-ups.
## Fixed
**`timetz` columns now project `WithTimeZone` in CDC relation state** (registry parity with the schema reader), removing a live phantom-alter every timetz column previously produced at classifier boundaries. The fix's naive form would have silently flipped `time ⇄ timetz` swaps from refuse to forward — caught by mutation before landing; the refusal is preserved with an honest session-TZ message. **The `SLUICE-E-CDC-STATEMENT-DML` tripwire now enumerates `WITH` (CTE-DML)** — previously a documented residue, a statement-format `WITH x AS (…) UPDATE` was silently dropped; it now refuses like the other DML verbs. **`LocalStore` crash-orphaned temp files** are invisible to `List` and swept (age-guarded, best-effort) by the next same-key write.
## Internal
The CDC roster gates refuse alias references of their guarded preflights (closing the invoke-through-a-variable evasion, with self-tests; name-based residual stated); honest comment corrections (`splitDBList`'s per-arm asymmetry; the probe round-trip count claim); dependency bumps (otel v1.46.0 family; kong 1.16.1 via Dependabot).
## Compatibility
Drop-in from v0.133.1 with one deliberate posture change:a `timestamp ⇄ timestamptz` ALTER mid-sync now stops the stream loudly where every prior release forwarded it. If both your ALTER session and the apply path ran UTC, the old forwarding converged and nothing was lost; if they differed, prior releases silently diverged pre-existing rows — run `sluice verify` on any table that crossed that ALTER historically. The refusal's remedy is the standard drained-model apply.
## Install
```
# Homebrew
brew upgrade sluice
# Scoop (Windows)
scoop update sluice
# Go
go install sluicesync.dev/sluice/cmd/sluice@v0.134.0
```
Container images:`ghcr.io/sluicesync/sluice:0.134.0` (multi-arch; the image tag carries no `v` prefix).
**Full changelog:** https://github.com/sluicesync/sluice/blob/main/CHANGELOG.md