Replicate MS Access databases to PostgreSQL, MySQL, or SQL Server — fast, accurate, single-binary. A Rust reimagining of the proven Python MS Access Replicator.
DownloadReplicator-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.
.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.
Tables, columns, data types, primary keys, indexes, and foreign keys — all replicated with correct type mapping for PostgreSQL, MySQL, and SQL Server.
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.
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.
Detects rows deleted in Access and removes them from the target database. Processes tables in FK dependency order to respect cascade delete constraints.
Mark tables that rarely change as nonvolatile. Replicator-NG skips them when row counts match — saving time on large, static reference tables.
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.
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.
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:
| Step | What Happens |
|---|---|
| 1. Discover | Opens the .accdb via DAO COM, enumerates all user tables, columns, data types, primary keys, indexes, and foreign keys |
| 2. Schema | Generates CREATE TABLE DDL with correct type mappings — dbLong → BIGINT, dbText(50) → VARCHAR(50), dbCurrency → DECIMAL(19,4), etc. |
| 3. Copy | Reads 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. Sync | On subsequent runs: UPSERT changed rows, skip unchanged nonvolatile tables, detect and DELETE orphaned rows from the target |
| 5. Validate | Compares row counts between Access and the target database for every table, reports mismatches |
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.
| Phase | Version | Scope | Status |
|---|---|---|---|
| Phase 1 — Core Engine | 0.1.0 | CLI binary, PostgreSQL backend, full schema + data replication, incremental sync, sync-deleted, nonvolatile | ✓ Complete |
| Phase 2 — GUI & Installer | 0.2.0 | Windows GUI, config editor, scheduler integration, Inno Setup installer | ✓ Complete |
| Phase 3 — Multi-target & Licensing | 0.3.0 | MySQL, SQL Server backends, licence key activation, CLI licence enforcement | ✓ Complete (11/11 tasks, 48/48 tests pass) |
| Phase 4 — Multilingual | 0.4.0 | Compile-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 | License | Notes |
|---|---|---|
| PostgreSQL | Licensed (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 / MariaDB | Paid (annual) | Per-machine licence key with activation. Requires mysql_replicator feature in the licence file. Includes updates and support. |
| SQL Server | Paid (annual) | Natural pairing — Access front-end, SQL Server back-end. Requires mssql_replicator feature. High-value enterprise target. |
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.
| Python | Replicator-NG |
|---|---|
python pg_replicator.py -c config.yaml | replicator-ng.exe -c config.yaml |
python pg_replicator.py -l -s data.accdb | replicator-ng.exe -l -s data.accdb |
python pg_replicator.py --schema | replicator-ng.exe --schema |
python pg_replicator.py --sync-deleted | replicator-ng.exe --sync-deleted |