23.07.2025
5 min read
Eglė Kazbaraitė

Incremental .df loading in OpenEdge

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.

What is an Incremental .df File?

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 services

What Changed in OpenEdge 12.4?

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:

  • PreDeploy – non-disruptive online operations.
  • Trigger – all trigger definition changes.
  • PostDeploy – disruptive online operations like field drops.
  • Offline – changes that must occur while the database is offline.

This phased approach gives developers more flexibility and control during live deployments – especially when used in CI/CD pipelines.  

Paveikslėlis, kuriame yra tekstas, ekrano kopija, diagrama, dizainasDirbtinio intelekto sugeneruotas turinys gali būti neteisingas.

How it works?

Dumping/Loading Incremental .df through GUI

You can generate .df files in either the old or new format through the Data Administration Tool. To enable the sectioned format:

  1. Navigate to Dump Incremental Definitions
  2. Tick “Dump definitions in sections for phased load”

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.

A screenshot of a computerAI-generated content may be incorrect.

Loading via Console: load_df_silent.p

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

  • pcFileName: Path to the .df file
  • pcOptions: Comma-separated flags, including:
    • AddObjectsOnline  – load new tables and sequences on-line
    • ForceCommit  – commit even with errors
    • ForceIndexDeactivate – create new indexes inactive
    • ForceSharedSchema – ignore Multi-tenant properties
    • PreDeployLoad  – load PreDeploy section
    • TriggerLoad   – load trigger section
    • PostDeployLoad – load PostDeploy section
    • OfflineLoad   – load predeploy section

Output Parameters

  • pcWarnings – displayable warnings

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:

  • Passing AddObjectsOnline with specific sections.
  • Passing AddObjectsOnline without specifying sections causes an error if offline changes exist.

Need help automating schema updates or CI/CD integration? Talk to our Progress OpenEdge experts.

Types of schema changes supported

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.

Important caveats: dropping fields online

Yes – fields can be dropped online, with some restrictions:

  • The database and all clients must run Progress OpenEdge 12.4 or later.
  • Only one non-indexed field can be dropped per transaction.
  • Cannot be part of a larger transactional block.
  • Cannot target LOB fields.
  • Requires dbnotification to be enabled.

As of OpenEdge 12.5:

  • Multiple non-indexed fields can be dropped online – but one per operation only.

Other notes:

  • If the field is indexed, the statement is moved to the Offline section.
  • If multiple Drop Field statements exist, only the first appears in PostDeploy; the rest are handled as Offline.

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.

Results and benefits

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.

Why it matters

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.

Let’s talk about your project

Starting something new or need support for an existing project? Reach out, and our experts will get back to you within one business day.

Start the conversation

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.