As the year draws to a close and the festive season approaches, the CDO team has delivered an early Christmas present to its community: the brand new Model Evolution Support feature! If you’ve ever wished for a smoother, safer way to evolve your EMF models in a CDO repository, your wish has just been granted.
Unwrapping the Gift: What Is Model Evolution Support?
Just like a carefully wrapped present under the tree,
model evolution has long been a much-anticipated feature for CDO users. In the
past, evolving your domain models—adding new features, refactoring classes, or
updating enumerations—could be a daunting task, often requiring manual
intervention, downtime, or even risky database migrations.
With the new Model Evolution Support, CDO
introduces a phased, robust, and highly configurable process to handle model
changes. This means you can now update your Ecore models and let CDO guide your
repository through the necessary steps to keep your data and schema in sync—no
more crossing your fingers and hoping for the best!
How Does It Work? A Phased Approach
Think of model evolution as a series of steps, much like unwrapping a present layer by layer. CDO’s approach is divided into clear phases:
- Change Detection: CDO first checks for differences between the stored models and your newly registered EPackages. If nothing has changed, the process stops here—no unnecessary work!
- Repository Export (Optional): Before making any changes, CDO can
export your repository data, providing a safety net in case you need to roll
back.
- Schema Migration: This is the heart of the process. CDO
updates the database schema, adjusts feature IDs, and ensures enums are
consistent with your new model.
- Store Processing (Optional): Any additional post-processing on the
database can be handled here.
- Repository Processing (Optional): Final touches and clean-up on the repository itself.
Each phase is managed by a dedicated handler, and you can customize or extend these handlers to fit your project’s needs. Default implementations are provided for the most critical phases, so you’re ready to go out of the box.
Modes for Every Wish List
Santa knows that not everyone wants the same gift, and CDO’s Model Evolution Support is just as flexible. You can configure the evolution mode to:
- Migrate: Automatically evolve your models and
database (the default and most magical option).
- Prevent: Detect changes but stop the process if
any are found—perfect for production environments where stability is key.
- Disabled: Turn off model evolution entirely if you want to manage changes manually.
Peace of Mind: Logging, Recovery, and Transparency
No Christmas present is complete without instructions and a warranty! CDO logs every step of the evolution process, stores context and state in dedicated folders, and allows you to resume interrupted evolutions. This transparency means you can always see what’s happening and recover gracefully from any hiccups.
Conclusion: The Gift That
Keeps on Giving
With Model Evolution Support, CDO users can look forward to a new year of painless model updates, safer migrations, and more time to focus on building great applications. It’s a feature that truly feels like Santa came early—delivering exactly what the community has been wishing for.
The feature is ready for use in this p2 repository.
More information can be found in the help center.
Happy
holidays, and happy evolving!





No comments:
Post a Comment