Replicator-NG

Replicate MS Access databases to PostgreSQL, MySQL, or SQL Server — fast, accurate, single-binary. A Rust reimagining of the proven Python MS Access Replicator.

Download

What It Does

Replicator-NG copies your Microsoft Access database tables — schema, data, indexes, and foreign keys — into a server-grade database. Your .accdb file stays untouched. Your Access forms, reports, and VBA continue working. Your web apps, analytics tools, and reporting systems get real SQL access to your data.

Zero disruption. Replicator-NG reads from Access — it never modifies your .accdb. The original database remains the single source of truth. The replica is a read-optimised copy you can query, join, and report against without touching Access.
🔄

Full Schema Replication

Tables, columns, data types, primary keys, indexes, and foreign keys — all replicated with correct type mapping for PostgreSQL, MySQL, and SQL Server.

📊

FK-Ordered Copy

Tables are copied in dependency order — parent tables first, then children. Foreign key constraints are created before data loads, so referential integrity is maintained throughout.

🔄

Incremental Sync

After the initial copy, subsequent runs only sync changes. Tables with primary keys use PostgreSQL UPSERT (ON CONFLICT DO UPDATE). Append-only tables copy only new rows.

🗑️

Sync-Deleted

Detects rows deleted in Access and removes them from the target database. Processes tables in FK dependency order to respect cascade delete constraints.

Nonvolatile Optimisation

Mark tables that rarely change as nonvolatile. Replicator-NG skips them when row counts match — saving time on large, static reference tables.

📦

Single Binary

One .exe file. No Python, no dependencies, no virtual environments. Drop it on any Windows machine with MS Access and a target database — it just works.

🌐

20-Language Support

Full multilingual support across 20 languages including CJK, Thai, Arabic, Devanagari, Bengali, Gurmukhi, Cyrillic, and Latin scripts. CLI --language flag and GUI globe icon for session-only switching. Preferences panel for persistent language selection.


How It Works

Replicator-NG connects to your Access database via DAO (Data Access Objects) — the same COM engine that powers Access itself — and writes directly to your target database using native drivers:

StepWhat Happens
1. DiscoverOpens the .accdb via DAO COM, enumerates all user tables, columns, data types, primary keys, indexes, and foreign keys
2. SchemaGenerates CREATE TABLE DDL with correct type mappings — dbLongBIGINT, dbText(50)VARCHAR(50), dbCurrencyDECIMAL(19,4), etc.
3. CopyReads every row from Access via DAO Recordset, converts values to target SQL literals, and INSERTs them into the target database — base tables first, FK tables in dependency order
4. SyncOn subsequent runs: UPSERT changed rows, skip unchanged nonvolatile tables, detect and DELETE orphaned rows from the target
5. ValidateCompares row counts between Access and the target database for every table, reports mismatches

Development Status

Version 0.4.0 — released. All 48 integration tests pass across all three backends (PostgreSQL, MySQL, SQL Server). A native Windows GUI with config editor, scheduler integration, and 20-language support is available. The Inno Setup installer produces a single replicator-ng-setup-0.4.0.exe. Download now or see the documentation for full details.

PhaseVersionScopeStatus
Phase 1 — Core Engine0.1.0CLI binary, PostgreSQL backend, full schema + data replication, incremental sync, sync-deleted, nonvolatile✓ Complete
Phase 2 — GUI & Installer0.2.0Windows GUI, config editor, scheduler integration, Inno Setup installer✓ Complete
Phase 3 — Multi-target & Licensing0.3.0MySQL, SQL Server backends, licence key activation, CLI licence enforcement✓ Complete (11/11 tasks, 48/48 tests pass)
Phase 4 — Multilingual0.4.0Compile-time translation system: 20 languages (6,560 translations), GUI globe icon + preferences panel, bundled fonts for CJK, Thai, Arabic, Devanagari, Bengali, Gurmukhi, Cyrillic✓ Complete (7/7 tasks)
🎯 Target: v1.0 release. Replicator-NG is feature-complete for PostgreSQL, MySQL, and SQL Server with full multilingual support (20 languages). The remaining work is bug fixes and scale testing (PowerBI.accdb).

Licensing

TargetLicenseNotes
PostgreSQLLicensed (free)Full functionality. A free licence key is bundled with the installer — no purchase, no activation required. Ships with replicator-ng.json next to the executable.
MySQL / MariaDBPaid (annual)Per-machine licence key with activation. Requires mysql_replicator feature in the licence file. Includes updates and support.
SQL ServerPaid (annual)Natural pairing — Access front-end, SQL Server back-end. Requires mssql_replicator feature. High-value enterprise target.
The PostgreSQL free licence is strategic. It removes the "try before you buy" friction entirely — a user downloads the installer, runs it, and immediately has full PostgreSQL replication with no licence key to enter. A user who successfully replicates their Access database to PostgreSQL is far more likely to pay for SQL Server replication than someone evaluating the tool from a spec sheet.

Backward Compatibility

Replicator-NG is a drop-in replacement for the Python pg_replicator.py. Every CLI flag is ported — -c/--config, -s/--source, -l/--list, -n/--network, --dump, --schema, --full-refresh, --sync-deleted, --nonvolatile, --slow, --output, and more — plus new flags like -L/--language for 20-language support. Config files use the same YAML format.

PythonReplicator-NG
python pg_replicator.py -c config.yamlreplicator-ng.exe -c config.yaml
python pg_replicator.py -l -s data.accdbreplicator-ng.exe -l -s data.accdb
python pg_replicator.py --schemareplicator-ng.exe --schema
python pg_replicator.py --sync-deletedreplicator-ng.exe --sync-deleted