Overview
Launch replicator-ng-gui.exe. The main window shows six collapsible panels, plus a toolbar with 📂 Load Config and 💾 Save Config buttons. On launch, it auto-loads replicatorconfig.toml from the current directory if it exists.
1. Source Database
Select your Access database and discover its tables.
- Browse… — opens a file picker for
.accdb/.mdbfiles - Refresh Tables — opens the database via DAO COM and discovers all user tables. Button is orange when discovery is needed, green when done
- Discovered Tables — collapsible list (closed by default) showing each table with column counts and include/exclude checkboxes
2. Target Database (PostgreSQL)
Configure and test your PostgreSQL connection.
- Fields: Host, Port, Database, User, Password (masked)
- Test Connection — orange when untested, green on success, red error on failure
- If the database doesn't exist, a 🛠 Create Database button appears (light red) — connects to
postgresand runsCREATE DATABASE
3. Tables
Manage which tables are included in replication.
- Include All / Exclude All — bulk toggle buttons
- Each table shows: include checkbox, name (with column count), Nonvolatile checkbox
- Nonvolatile — mark static reference tables; the replicator skips them when row counts match
4. Column Transformations
Define per-column data transforms. All fields use dropdown selectors — no manual text entry.
- + Add Transform — adds a row (defaults to first table, first column, uppercase)
- ❌ per row — remove individual transforms
- Columns: Table (ComboBox), Column (ComboBox — auto-updates when table changes), Type (ComboBox), Params (text field)
5. Run Replication
Execute replication and monitor progress.
- ▶ Run Now — green when ready, grey when prerequisites not met
- ⏹ Stop — red when running
- Inline warnings appear if source or target aren't configured
- Extra Options — collapsible section with five checkboxes. Each option is validated against the target database where applicable.
- Progress bars — per-table with current/total row counts
- Validation summary — green ✓ PASS or red ✗ FAIL per table
- Log panel — scrollable, auto-scrolls to bottom, 📋 Copy Log button copies all lines to clipboard
Extra Options — Detailed
Simple Names
When ticked, table and column names are sanitised for use as unquoted identifiers:
- Lowercase — all characters converted to lowercase
- Spaces → underscores:
Order Details→order_details - Special characters replaced with descriptive tokens:
%→_percent$→dollar_/_dollar_/_dollar(position-dependent)#→hash_/_hash_/_hash@→at_/_at_/_at&→amp_/_amp_/_amp*→star_/_star_/_star+→plus_/_plus_/_plus-→minus_/_minus_/_minus(→lbrk_/_lbrk_/_lbrk)→rbrk_/_rbrk_/_rbrk
- Other special characters replaced with underscore
- Leading digit prefixed with underscore:
1stFloor→_1stfloor
Examples: Unit $ → unit_dollar, Qty % → qty_percent, E-mail → e_mail (hyphen replaced), Phone # → phone_hash.
This setting is stored in the target database on the very first replication run. A metadata table called internal_replicator_data records whether simple names were used. On every subsequent run, Replicator-NG reads this table and the database's stored setting overrides whatever is ticked in the GUI.
| Scenario | Behaviour |
|---|---|
| Empty database + Simple Names ticked | Tables and columns created in lowercase. internal_replicator_data records simplenames=TRUE. Future runs auto-detect and use simple names. |
| Empty database + Simple Names unticked | Tables and columns created with original case (quoted). internal_replicator_data records simplenames=FALSE. |
Existing DB with simplenames=TRUE + Simple Names unticked | ⚠ Warning: "Target DB uses simple names — tick Simple Names, or use Schema Only to recreate." DB setting wins. |
Existing DB with simplenames=FALSE + Simple Names ticked | ⚠ Warning: "Target DB uses quoted names — untick Simple Names, or use Schema Only to recreate." DB setting wins. |
To change the naming style of an existing database: tick both Schema Only and Simple Names, then Run. This drops and recreates the schema from scratch with the new naming convention — including a fresh internal_replicator_data table that records the new setting.
Schema Only
Creates or recreates only the table structures (DDL) — no data is copied. Use this to set up the target schema before your first data replication, or to rebuild the schema after changing naming conventions.
Sync Deleted
After copying, compares row counts between Access and PostgreSQL. If the target has more rows than the source, it finds and deletes orphaned rows — those that exist in PostgreSQL but no longer exist in Access. Processes tables in foreign-key dependency order.
Nonvolatile
Skips tables whose row counts match between Access and PostgreSQL. Useful for large, static reference tables that rarely change. Tables must be ticked as Nonvolatile in the 3. Tables panel.
Verbose
Shows detailed DEBUG and TRACE messages in the log panel. By default, only INFO, WARN, and ERROR messages are shown.
6. Schedule
Automate replication via Windows Task Scheduler.
- Task name, config path, enable toggle
- Frequency: Daily / Weekly / Monthly / At Logon
- Time picker for Daily/Weekly/Monthly
- Day-of-week checkboxes for Weekly (default: Monday only)
- Create Task — orange when not yet created, green (Update Task) when it exists
- Delete Task — red, removes from Task Scheduler