Access
PostgreSQL

Access to PostgreSQL Converter

Tables, keys, indexes, and rows from an Access file into PostgreSQL - once, or kept in step while the front end moves.

Version
5.4.0
Release Date
Oct. 25, 2026
Size
125.9 MB
Platform
Windows 10 or later

Rather not run it yourself?

Let us do the migration →

Move the tables of an Access database into PostgreSQL without writing the target schema by hand. DBConvert creates the tables, primary keys, indexes, and foreign keys, maps every column, and copies the rows straight from the Access file to the server.

  • Reads .accdb and .mdb files, including files protected by a database password.
  • Writes to PostgreSQL, Amazon RDS or Aurora, Azure Database for PostgreSQL, Google Cloud SQL, or Supabase, or to a .sql file.
  • Runs on Windows as a desktop application.
  • The same download converts PostgreSQL back into Access.

What the Access side needs

DBConvert reads Access through Microsoft's Access Database Engine. Check these before the first run.

64-bit Access Database Engine

Microsoft's free download, not part of the DBConvert installer. Without it, the connection step says so and links to it.

Access 2000 format or later

Access 97 files do not open. Save such a file in Access 2000 or a later format first, then convert the copy.

Database password, not workgroups

A file with a database password opens with that password. Workgroup security (.mdw files) is not supported.

Convert once, or keep Access and PostgreSQL in step

Both modes are part of the same DBConvert application.

One-time conversion

Create the PostgreSQL schema and load the selected tables. Names arrive as they are in Access, or in lower case if you choose, so most queries need no quoted identifiers.

Synchronization

Keep the Access front end in use while PostgreSQL is tested. A sync job carries inserts, updates, and deletes one way, matching rows by primary key; a second job runs the other direction. See how synchronization works.

A job keeps both connections, the table selection, and the options. Run it again from the application, or by name from Task Scheduler with --run-job.

How Access types map to PostgreSQL

Defaults for a direct transfer. Review or override the target type per column before the run.

In Access DBConvert default in PostgreSQL What needs attention
Currency, Decimal Currency becomes numeric(19,4); Decimal(p,s) keeps its precision and scale as numeric(p,s). Exact values stay exact, every digit kept.
AutoNumber, Large Number AutoNumber becomes an integer key with its own sequence; Large Number becomes bigint. New rows inserted in PostgreSQL get their key from the sequence.
Short Text, Long Text (Memo) varchar(n) at the Access length, and text. Unicode text arrives as written.
Date/Time, Yes/No, Replication ID timestamp, boolean, and uuid. A GUID key stays the same key in sync, although PostgreSQL shows it in lower case without braces.
OLE Object, Binary bytea, byte for byte. An embedded document stays in its OLE wrapper.
Attachment, multi-value fields Text: the values separated by ;, or the attached file names. The attached files themselves are not copied. Each such column is named in the log.
Default values Now() becomes now(), Date() becomes CURRENT_DATE; literal defaults are kept. Other expressions are dropped and named in the log.

Queries, forms, reports, and VBA stay in Access

DBConvert moves tables, keys, indexes, and foreign keys. Saved queries, forms, reports, macros, and VBA are the application, not the data: keep them in Access against the new tables, or rebuild them separately.

Supported versions and services

Access

  • MS Access .accdb, and .mdb in Access 2000 format or later
  • Database password; the 64-bit Microsoft Access Database Engine is required

PostgreSQL

  • PostgreSQL 8.x through 17.x
  • Amazon RDS / Aurora for PostgreSQL, Azure Database for PostgreSQL, Google Cloud SQL, Supabase
  • PostgreSQL schemas (public, custom schemas)

How to migrate Access to PostgreSQL

1

Setup: connect Access and PostgreSQL

Pick Convert or Sync, then choose the source and destination connections side by side on one screen. A connection is saved once and reused by every job.

The Setup step in DBConvert: the mode, the Access source and PostgreSQL destination side by side, and the job name

Sync keeps an existing PostgreSQL database up to date with Access: each run carries only the inserts, updates and deletes since the last one.

The Setup step in Sync mode for Access to PostgreSQL: how changes are detected and the direction

Access source

Select the source .accdb or .mdb file and enter its database password if it has one. Reading it needs the 64-bit Microsoft Access Database Engine.

Look inside the Access file first

To see what an .mdb or .accdb file holds before converting it, open it in the free MDB and ACCDB Viewer: tables with their Access types, relationships as an ER diagram, saved queries and read-only SQL, in the browser, with no upload and no Access installed.

Open the MDB viewer · VS Code extension

PostgreSQL target

Connect to self-hosted PostgreSQL, Amazon RDS / Aurora, Google Cloud SQL, or another supported PostgreSQL target.

2

Tables & mapping: see every PostgreSQL type before a row moves

Pick the tables, then open one: each Access column shows the PostgreSQL type it becomes. Change a type or a name in place; the line at the bottom names anything that would fail.

Tables and mapping for Access to PostgreSQL: the table list and one table's columns with their PostgreSQL types
3

Execution: start it, and the job is saved

Review what the run will do, start it, and read the log as it goes. The job stays in the list to run again or put on a schedule.

A finished Access to PostgreSQL conversion: the summary and the operation log

Every option, in the guide

Naming rules, table options, row filters, scheduling and the command line work the same for every database pair, so they live in one place.

Move Access data into PostgreSQL

Download the current build and run the first job against your own database.

Windows Windows 10 or later · 125.9 MB