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.

Learn More

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.


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 โ€” dbLong โ†’ BIGINT, dbText(50) โ†’ VARCHAR(50), dbCurrency โ†’ DECIMAL(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

Phase 1 complete โ€” CLI binary with full PostgreSQL feature parity. Verified on Windows against Northwind.accdb (233 rows, 9 tables).

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โ—‡ Planned
Phase 3 โ€” Multi-target & Licensing0.3.0MySQL, SQL Server backends, licence key activationโ—‡ Planned
๐ŸŽฏ Target: v1.0 release. Replicator-NG is under active development. PostgreSQL replication is feature-complete and passing integration tests. GUI and multi-target backends are next.

Licensing

TargetLicenseNotes
PostgreSQLFreewareFull functionality, no restrictions. Use it forever, no activation required.
MySQL / MariaDBPaid (annual)Per-machine licence key with activation. Includes updates and support.
SQL ServerPaid (annual)Natural pairing โ€” Access front-end, SQL Server back-end. High-value enterprise target.
The PostgreSQL freeware tier is strategic. It removes the "try before you buy" friction entirely. 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. 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