Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.5.0] - 2026-09-25

### Added

- **Cross-engine case-insensitive table discovery & row hashing**:
Expand Down Expand Up @@ -570,7 +572,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- PostgreSQL schema-aware queries
- MySQL foreign key check handling

[Unreleased]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.3...HEAD
[Unreleased]: https://github.com/iamvirul/deepdiff-db/compare/v1.5.0...HEAD
[1.5.0]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.5...v1.5.0
[1.4.5]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.4...v1.4.5
[1.4.4]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.3...v1.4.4
[1.4.3]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.2...v1.4.3
[1.4.2]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.1...v1.4.2
Expand Down
10 changes: 5 additions & 5 deletions Formula/deepdiff-db.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@
class DeepdiffDb < Formula
desc "Compare databases, detect schema drift, and generate safe SQL migration packs."
homepage "https://iamvirul.github.io/deepdiff-db/"
version "1.4.5"
version "1.5.0"
license "Apache-2.0"

on_macos do
if Hardware::CPU.intel?
url "https://github.com/iamvirul/deepdiff-db/releases/download/v1.4.5/deepdiffdb_1.4.5_darwin_amd64.tar.gz"
url "https://github.com/iamvirul/deepdiff-db/releases/download/v1.5.0/deepdiffdb_1.5.0_darwin_amd64.tar.gz"
Comment thread
iamvirul marked this conversation as resolved.
sha256 "0080d5f36c799cf72f9e5021ed25d3db2c0b59622001d28acf725f7d9153cb4b"

define_method(:install) do
bin.install "deepdiffdb"
end
end
if Hardware::CPU.arm?
url "https://github.com/iamvirul/deepdiff-db/releases/download/v1.4.5/deepdiffdb_1.4.5_darwin_arm64.tar.gz"
url "https://github.com/iamvirul/deepdiff-db/releases/download/v1.5.0/deepdiffdb_1.5.0_darwin_arm64.tar.gz"
sha256 "61e41b7a54faa1d3e24a6e09eb17b1002d5d96b226fdae2e8f8ca7cbdbd344c2"

define_method(:install) do
Expand All @@ -29,14 +29,14 @@ class DeepdiffDb < Formula

on_linux do
if Hardware::CPU.intel? && Hardware::CPU.is_64_bit?
url "https://github.com/iamvirul/deepdiff-db/releases/download/v1.4.5/deepdiffdb_1.4.5_linux_amd64.tar.gz"
url "https://github.com/iamvirul/deepdiff-db/releases/download/v1.5.0/deepdiffdb_1.5.0_linux_amd64.tar.gz"
sha256 "3f10e5d32b98a1f742f279bcf17d62e2877b642fb0d188a6f638652c93f43ccf"
define_method(:install) do
bin.install "deepdiffdb"
end
end
if Hardware::CPU.arm? && Hardware::CPU.is_64_bit?
url "https://github.com/iamvirul/deepdiff-db/releases/download/v1.4.5/deepdiffdb_1.4.5_linux_arm64.tar.gz"
url "https://github.com/iamvirul/deepdiff-db/releases/download/v1.5.0/deepdiffdb_1.5.0_linux_arm64.tar.gz"
sha256 "e062a5538cdba16e74c4fd033f80a048764f76c897696e9f81eb5047949b825b"
define_method(:install) do
bin.install "deepdiffdb"
Expand Down
2 changes: 1 addition & 1 deletion action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ inputs:
command:
description: >
DeepDiff DB command to run.
One of: check, schema-diff, schema-migrate, diff, gen-pack, apply, resolve-conflicts
One of: check, schema-diff, schema-migrate, diff, row-diff, gen-pack, apply, resolve-conflicts, version
required: true
default: diff

Expand Down
4 changes: 2 additions & 2 deletions scoop/deepdiff-db.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"version": "1.4.5",
"version": "1.5.0",
"architecture": {
"64bit": {
"url": "https://github.com/iamvirul/deepdiff-db/releases/download/v1.4.5/deepdiffdb_1.4.5_windows_amd64.zip",
"url": "https://github.com/iamvirul/deepdiff-db/releases/download/v1.5.0/deepdiffdb_1.5.0_windows_amd64.zip",
"bin": [
"deepdiffdb.exe"
],
Expand Down
4 changes: 4 additions & 0 deletions website/docs/commands/row-diff.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ sidebar_position: 6

# row-diff

:::info Added in v1.5.0
The `row-diff` command and `--row-diff` flag were added in DeepDiff DB v1.5.0.
:::

Inspects column-level differences for modified, added, or removed rows between production and development databases. Displays a side-by-side terminal comparison with differing columns highlighted, and writes machine-readable reports.

![row-diff Terminal Inspection](/img/row-diff-terminal.svg)
Expand Down
4 changes: 2 additions & 2 deletions website/docs/deployment/cicd.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ DeepDiff DB ships a `.pre-commit-hooks.yaml` at the repo root, so you can refere
```yaml
repos:
- repo: https://github.com/iamvirul/deepdiff-db
rev: v1.4.0 # pin to a release tag
rev: v1.5.0 # pin to a release tag
hooks:
- id: deepdiff-db-schema
# Optional: override the config path
Expand Down Expand Up @@ -215,7 +215,7 @@ jobs:

## Tips

- **Pin the version** with `DEEPDIFFDB_VERSION: v1.4.0` to avoid unexpected upgrades.
- **Pin the version** with `DEEPDIFFDB_VERSION: v1.5.0` to avoid unexpected upgrades.
Comment thread
iamvirul marked this conversation as resolved.
- **Cache the binary** between runs using your CI platform's cache action.
- **Silent schema gate** — use `schema-diff --quiet` for a fully silent check; exit code `0` = no drift, non-zero = drift or error.
- **Temporary output dirs** — use `--output-dir /tmp/deepdiff-$$` so ephemeral runners don't need a writable workspace.
Expand Down
12 changes: 6 additions & 6 deletions website/docs/deployment/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ DeepDiff DB ships a minimal, scratch-based Docker image with zero native depende
docker pull ghcr.io/iamvirul/deepdiff-db:latest

# Specific version
docker pull ghcr.io/iamvirul/deepdiff-db:v1.4.0
docker pull ghcr.io/iamvirul/deepdiff-db:v1.5.0
```

## Run a diff
Expand Down Expand Up @@ -52,8 +52,8 @@ Copy and adapt `docker-compose.example.yml` to point at your real databases.

```bash
docker build \
--build-arg VERSION=v1.4.0 \
-t deepdiff-db:v1.4.0 \
--build-arg VERSION=v1.5.0 \
-t deepdiff-db:v1.5.0 \
.
```

Expand All @@ -70,8 +70,8 @@ The multi-stage build compiles a statically linked binary with `CGO_ENABLED=0`,
| Tag | Description |
|-----|-------------|
| `latest` | Most recent stable release |
| `v1.4.0` | Specific version |
| `v1.4.0-amd64` | Architecture-specific manifest |
| `v1.4.0-arm64` | Architecture-specific manifest |
| `v1.5.0` | Specific version |
| `v1.5.0-amd64` | Architecture-specific manifest |
| `v1.5.0-arm64` | Architecture-specific manifest |

Multi-arch manifests cover `linux/amd64` and `linux/arm64`.
4 changes: 4 additions & 0 deletions website/docs/features/cross-engine-diff.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ sidebar_position: 1

# Cross-Engine Data Diff & Verification

:::info Added in v1.5.0
DeepDiff DB v1.5.0 introduces automatic identifier case folding for cross-engine schema discovery and row-level diffing.
:::

DeepDiff DB supports **cross-engine data diffing and migration verification**, allowing you to compare schemas and row data between completely different database engines (such as **PostgreSQL $\leftrightarrow$ Oracle**, **MySQL $\leftrightarrow$ PostgreSQL**, or **SQLite $\leftrightarrow$ MSSQL**).

![Live Migration Pipeline Mismatch](/img/cross-engine-pipeline-mismatch.jpg)
Expand Down
4 changes: 2 additions & 2 deletions website/docs/getting-started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,14 +148,14 @@ deepdiffdb --version
Expected output:

```
DeepDiff DB v1.4.0
DeepDiff DB v1.5.0
```

---

## Build from Source

Requires Go 1.25.9 or later.
Requires Go 1.25.13 or later.

```bash
go install github.com/iamvirul/deepdiff-db/cmd/deepdiffdb@latest
Expand Down
2 changes: 1 addition & 1 deletion website/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const config = {
{ type: 'docSidebar', sidebarId: 'docs', position: 'left', label: 'Docs' },
{ to: '/blog', label: 'Blog', position: 'left' },
{ href: 'https://github.com/iamvirul/deepdiff-db', label: 'GitHub', position: 'right' },
{ href: 'https://github.com/iamvirul/deepdiff-db/releases', label: 'v1.4', position: 'right' },
{ href: 'https://github.com/iamvirul/deepdiff-db/releases', label: 'v1.5', position: 'right' },
],
},
footer: {
Expand Down
2 changes: 1 addition & 1 deletion website/src/pages/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ export default function Home() {
<div className={styles.hero}>
<div className={styles.heroBg} />
<div className={styles.heroContent}>
<div className={styles.heroBadge}>v1.4 — Views, Routines, Triggers &amp; Sequences</div>
<div className={styles.heroBadge}>v1.5 — Column-Level Drift &amp; Cross-Engine Row Diff</div>
<h1 className={styles.heroTitle}>
Database diff that<br />
<span className={styles.heroGradient}>actually ships</span>
Expand Down
Loading