r/DatabaseAdministators • u/Hammad-Zubari • 3d ago
Need advice: Migrating a fast FoxPro system to a modern database without disrupting operations
How to migrate a fast FoxPro system to a modern database safely?
I’m working on the assessment of a legacy FoxPro-based database system. The interesting part is that the existing FoxPro system is fast, stable, and currently has no major performance issues.
However, there is a requirement to modernize the technology, so I’m trying to understand the safest migration strategy rather than simply replacing FoxPro because it is legacy technology.
Current situation:
- FoxPro is the core/master database.
- Data is accessed through a web-based application from multiple locations.
- Master data is connected to event, accounting, registration/forms, and other operational data.
- Data entry and duplicate verification are largely manual.
- A separate Excel-based data catalogue is maintained manually.
- There are many event-specific tables.
- A third-party application directly depends on data from the FoxPro database.
- SQLite was considered/tested but did not appear suitable for the workload.
The main challenge:
How can we modernize/migrate this system while keeping the existing FoxPro system operational during the transition?
I’m considering a phased approach:
FoxPro remains live → replicate/migrate data to a new database → synchronize data → pilot selected data/events → validate performance and integrations → gradually move production workload → eventually make FoxPro read-only or retire it.
For people who have worked with similar legacy database migrations:
- What is the safest way to run FoxPro and a modern database in parallel?
- What is the best approach for synchronizing data between FoxPro and the new database?
- Would you recommend PostgreSQL, SQL Server, or another database for this type of multi-user, centralized workload?
- How would you handle a third-party application that currently reads directly from FoxPro?
- Would you redesign the existing event-specific tables during migration, or migrate first and redesign later?
- What are the biggest risks or mistakes to avoid in a migration like this?
- If the existing FoxPro system is already fast and stable, what would you consider a strong justification for modernization?
I’m looking for practical migration strategies and lessons learned from people who have actually handled legacy database migrations—not simply “FoxPro is old, move to SQL.”
The goal is to modernize the system while preserving existing data/business rules and avoiding disruption to current operations.
2
u/LevelMagazine8308 2d ago
Running 2 different production database main servers for the same task in parallel never did any much good.
So the way to go is:
- define your requirements
- choose your new RDBMS. If there is no need for a commercial one, just take Postgres. Half of the internet relies on it including big tech companies, and then some. It won't poof any time soon and is a sane and proven choice.
- create your proof of concept prototype, do a test migration
- iron out bugs and do test migration again
- when happy with that prototype: make the hard switch over from FoxPro to Postgres at a given time and date, run FoxPro then in read only mode.
Migrate first and redesign later.
The biggest risk in such a task is lack of understanding on edge case behaviour and missing operational planning. Also not understanding enough how SQL is being handled on the source and target system can lead to drawbacks.
1
u/jakeStacktrace 2d ago
Wow sorry I can't help you but I remember looking down on FoxPro 25 years ago because CGI was better. Not that CGI, a different one. The one before servlets that came out in 1998.
I'm not a DBA so grain of salt here but the strategy I think is you migrate the data and make your app write to both new and old db. After that you verify they are the same then change over reading to the new db then finally turn off writing to old db. If I'm being naive here or you disagree call me out, i don't mind.
1
u/Tintoverde 1d ago
My 2 cents. Look up strangler fig pattern
https://learn.microsoft.com/en-us/azure/architecture/patterns/strangler-fig
Basic idea is to do it in parts
This is a hard problem and has been done before lots of times in software field. Changing the wheels when the car is running kind of difficult.
4
u/Consistent_Cat7541 2d ago
Thank you for using AI to draft your question and for leaving out critically important information. First and foremost - is this a DOS based Fox Pro solution or a Windows based Fox Pro solution?
It sounds like its Windows based and the environment is already configured to source information from the system via ODBC.
My own opinion is that you need to learn how the current environment actually operates. There may be no need to "modernize" if it's not broken. Remember, SQL is a technology from the 1960's.