Data · Limits

The 2 GB Wall: FoxPro's Table Size Limit

Almost every long-running FoxPro application eventually meets the same hard ceiling: a single table cannot grow past 2 gigabytes. It is not a setting you can raise or a license you can buy. It is a fixed limit of the DBF file format, and the closer a busy table gets to it, the more fragile the whole system becomes.

If your application has been collecting data for a decade or more, this is one of the most common reasons a "stable" system suddenly is not.

Where the 2 GB limit comes from

Per Microsoft's own Visual FoxPro system-capacity reference, a single .dbf table is limited to 2 GB, and each .fpt memo file that holds your notes, descriptions, and large text fields carries the same separate 2 GB cap. You can browse the primary-source docs on Microsoft's Visual FoxPro documentation. The limit is structural, baked into how the file format addresses records, which is why no configuration change lifts it.

What actually breaks as you approach it

The failure is rarely a clean "file full" message. It shows up as corruption and instability well before the theoretical ceiling:

Watch the memo file, not just the table. Two files share the ceiling: the .dbf and its .fpt. A modestly sized table with large memo content can hit 2 GB on the memo side while the table itself looks fine.

The workarounds, and why they are borrowed time

There are ways to keep going: archive old rows into history tables, split one large table into several, or prune memo content. Each buys time, and each adds complexity and new failure points to a system that is already hard to maintain. You are now engineering around the tool instead of with it. That is usually the real signal.

Hitting the wall is a symptom, not the disease

The 2 GB limit is not the problem. It is the messenger. It is telling you the application has outgrown the DBF file format it was built on. A modern database engine such as PostgreSQL or SQL Server does not have this ceiling in any practical sense, and it brings real concurrency, integrity, and backup guarantees that DBF files never offered.

The good news is that moving the data is the lowest-risk part of a modernization, and it can happen first, on its own. Your FoxPro application can keep running against the migrated data while you plan the rest. Our DBF-to-PostgreSQL guide covers the type mapping, encoding, and validation involved, and the data-migration service is built to do exactly this as a first phase.

Bottom line: if a busy table or its memo file is anywhere near 2 GB, do not treat it as a housekeeping chore. Treat it as your application telling you it needs a real database underneath it, and start with the data.

FAQ

Common questions

What is the maximum size of a FoxPro DBF table?
A single Visual FoxPro .dbf table is limited to 2 GB. Each associated .fpt memo file has its own separate 2 GB limit. These are fixed limits of the DBF file format and cannot be raised through configuration.
Why does my FoxPro table get corrupted near 2 GB?
As a table or its memo file approaches the 2 GB ceiling, writes that cross the limit can damage the file rather than fail cleanly. Corruption and index failures often appear before the theoretical maximum, which is why the problem feels sudden.
Does the 2 GB limit apply to memo files too?
Yes, and this catches many teams off guard. The .fpt memo file that stores large text and notes has its own 2 GB cap, separate from the .dbf. A table with heavy memo fields frequently hits the wall on the memo file first.
How do I get past the FoxPro 2 GB limit permanently?
Move the data to a modern database engine such as PostgreSQL or SQL Server, which does not have this practical ceiling. Data migration is the lowest-risk first phase of a modernization and can be done while the existing FoxPro application keeps running.

Get a real number for your application

A free assessment turns "it depends" into a scope, a phased timeline, and a plain-English plan. No obligation, no sales pressure.

Get a Free Migration Assessment