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.

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
- Open the ReconcileDB activity-bar view.
- Choose Generate Configuration File.
- Configure a source and target of the same database engine.
- Select the tables, keys, and columns to compare.
- 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.