Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>ReconcileDB for VS CodeNew to Visual Studio Code? Get it now.
ReconcileDB for VS Code

ReconcileDB for VS Code

Jacob Cofman

| (0) | Free
Compare and reconcile selected row data between PostgreSQL or SQL Server databases.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ReconcileDB logo

ReconcileDB for VS Code

Compare selected row data between two databases with the same schema, inspect the generated SQL, and choose when to apply it. ReconcileDB is local-first: database connections and generated files stay on your machine.

Thank you, Nguyen Ngoc Long. ReconcileDB for VS Code is an independently maintained fork of Data Sync, originally created by Nguyen Ngoc Long. His work made this extension possible. The upstream copyright and MIT license are preserved in LICENSE. This project is not affiliated with or endorsed by the original maintainer.

Visual Studio Marketplace Open VSX MIT license

What it does

  • Compares row data from PostgreSQL to PostgreSQL or SQL Server to SQL Server.
  • Lets you select tables and columns, exclude volatile columns, filter rows, and define stable ordering or primary keys.
  • Shows source and target snapshots alongside a generated migration plan before anything is applied.
  • Generates inserts, updates, and deletes that can be individually disabled.
  • Applies migrations in a transaction and reports suspicious row counts.
  • Uses exact value comparison. ReconcileDB does not silently normalize text, timestamps, or numbers.

ReconcileDB 1.0.3 does not compare or migrate database schemas, perform cross-engine synchronization, or run as a VS Code web extension.

Installation

Install ReconcileDB for VS Code from the Visual Studio Marketplace or Open VSX Registry.

The universal desktop package supports PostgreSQL and SQL Server username/password authentication on Windows, macOS, and Linux.

Quick start

  1. Open the ReconcileDB activity-bar view.
  2. Choose Generate Configuration File.
  3. Configure a source and target of the same database engine.
  4. Select the tables, keys, and columns to compare.
  5. Run Analyze Data, review the diff and migration SQL, then explicitly choose whether to execute it.

The existing data-sync.* command IDs, settings, and database.json format remain compatible with the original extension so existing local configurations can be reused.

PostgreSQL example

{
  "verbose": false,
  "patterns": {
    "staging-to-local": {
      "source": {
        "type": "postgres",
        "host": "staging.example.test",
        "port": 5432,
        "database": "app",
        "user": "reconciler"
      },
      "target": {
        "type": "postgres",
        "host": "localhost",
        "port": 5432,
        "database": "app",
        "user": "postgres"
      },
      "diff": {
        "tables": [
          {
            "schema": "public",
            "name": "customers",
            "primaryKeys": ["id"],
            "excludes": ["updated_at"],
            "orderBy": "id"
          }
        ]
      },
      "migrate": {
        "noInsert": false,
        "noUpdate": false,
        "noDelete": false,
        "noRowAffected": "warn",
        "multipleRowAffected": "throw"
      }
    }
  }
}

SQL Server example

For SQL Server authentication, use the same structure with "type": "mssql", normally on port 1433:

{
  "type": "mssql",
  "host": "localhost",
  "port": 1433,
  "database": "app",
  "user": "reconciler"
}

When the password property is omitted, ReconcileDB prompts for it. Username/password connection strings are also supported.

Might implement later

  • Windows integrated authentication. This would require revisiting native-driver packaging; for now, use SQL Server username/password authentication.

Safety notes

  • Review generated migration SQL before execution, especially deletes.
  • Use a least-privilege database account and test against disposable data first.
  • Put secrets in a local configuration ignored by source control. If password is omitted, the extension can prompt for it.
  • Define primaryKeys or a deterministic orderBy for tables without discoverable primary keys.
  • Exclude columns such as generated timestamps, row versions, audit metadata, or environment-specific identifiers when they are intentionally different.

Feedback

Please report bugs and feature requests in the JCofman/vs-data-sync issue tracker.

License

ReconcileDB for VS Code is distributed under the MIT License.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft