Incremental .df loading in OpenEdge

2025 08 04 · 5 min read

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 support and maintenance 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.

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.

    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

    SectionSchema 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.

    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 & 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 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

       privacy policy