Let’s work together
Want to discuss potential opportunities? Pick the most suitable way to contact us.
Book a call+370 5 2 780 400
info@ba.lt
Applying database schema changes in live environments can be challenging. With OpenEdge 12.4, Progress introduced a new incremental .df file format that supports phased, online-friendly updates. If your business depends on critical OpenEdge applications, this approach can help enhance your deployment process.
This blog post explains how the new format works, how to create and load .df files via the GUI or console, which schema changes are supported online or offline, and the key limitations to be aware of.
An incremental .df file is a snapshot of schema differences between two databases. Instead of exporting the entire schema, it captures only the changes, which makes it ideal for keeping different environments (like development and production) in sync without requiring a full rebuild.
For teams maintaining large or critical systems, this greatly reduces the risk and effort of rolling out updates. This method is especially useful in environments where downtime is costly or unacceptable.
Explore our Progress OpenEdge support and maintenance services.
Starting with Progress OpenEdge version 12.4, the format of the incremental .df file was enhanced to support online schema changes by dividing the file into structured sections:
This phased approach gives developers more flexibility and control during live deployments – especially when used in CI/CD pipelines.
You can generate .df files in either the old or new format through the Data Administration Tool. To enable the sectioned format:
When loading a delta.df file, you can choose whether to load it by sections and even select which sections to apply. To make online schema changes, be sure to check “Add new objects online” in the Load Data Definitions window.
You can also load incremental .df files silently using the console and the procedure load_df_silent.p, part of Progress OpenEdge source code.
Note: If src/prodict.pl is missing from your installation, you can download it from the Progress GitHub ADE repo.
Input Parameters
Output Parameters
Examples:
Loading everything online
DEFINE VARIABLE pcWarnings AS CHARACTER NO-UNDO.
run C:\Progress\OpenEdge\prodict\load_df_silent.p ("delta.df","AddObjectsOnline", OUTPUT pcWarnings).
Loading chosen online changes
DEFINE VARIABLE pcWarnings AS CHARACTER NO-UNDO.
run C:\Progress\OpenEdge\prodict\load_df_silent.p (
"delta.df",
"AddObjectsOnline,PreDeployLoad,PostDeployLoad",
OUTPUT pcWarnings).
Console Behavior Observed:
Need help automating schema updates or CI/CD integration? Talk to our Progress OpenEdge experts.
Section | Schema Change Examples | Notes |
---|---|---|
PreDeploy | Field data type change from Integer to INT64 Modify existing non-structural schema fields Rename a field of an existing table (More info) Add a new table along with its fields, indexes, and triggers Add Sequence Add InActive Index Add/update field | |
Trigger | Create, delete, or modify triggers | Trigger R-code must be in place before applying schema changes. More info |
PostDeploy | Drop a single non-indexed field | Only one field at a time. Indexed fields go to the Offline section. More info |
Offline | Drop an index from an existing table Drop a field from an existing table Add/update/delete Active Index Drop/update/rename InActive-Index Update/delete Sequence Add/update/delete Constraints Delete/update table, etc. | These schema change operations cannot be carried out online and therefore require an exclusive schema lock on the database. |
For a full modernisation strategy, explore our Progress OpenEdge application modernisation services.
Yes – fields can be dropped online, with some restrictions:
As of OpenEdge 12.5:
Other notes:
For full technical details, refer to the Progress Documentation on online schema changes. Ensure you’re using the right database version and configuration – ask our Progress OpenEdge team.
We tested a variety of schema changes using the new sectioned .df format. All changes in PreDeploy, Trigger, and PostDeploy sections were successfully applied online – both individually and in combination.
Attempts to apply Offline changes in online mode were correctly rejected, with errors raised and transactions rolled back.
By leveraging the structured .df format, development and operations teams gain better control, predictability, and deployment efficiency.
This structured approach reduces downtime, improves planning, and empowers teams to implement changes safely and incrementally.
Want to simplify and automate schema updates across your environments? Explore the full range of our Progress OpenEdge services.
Want to discuss potential opportunities? Pick the most suitable way to contact us.
Book a call+370 5 2 780 400
info@ba.lt
Discover key lessons for junior developers from real Progress OpenEdge Academy graduates. Learn how hands-on experience, teamwork, and mindset shape a successful dev career.
Discover how the ABLUnit Test Runner extension for Visual Studio Code simplifies unit testing for Progress OpenEdge ABL developers. Learn how to configure, run, and troubleshoot tests with ease while integrating Test-Driven Development into your workflow.
Explore how SEPA and upcoming EU regulations make Verification of Payee (VoP) essential for secure, instant euro payments by October 2025.