public interface IERXMigration
You should not saveChanges() on the editing context passed into the methods of this interface (unless it cannot be avoided), because there is a transaction above you.
You also must be very careful of the EO operations you perform with this editing context. You may be in the process of upgrading across multiple model versions, so it is possible that you model you are using may be out of sync with the underlying database at the time this particular migration is being performed in the sequence. For instance, you would always be running with the latest version model, but this might be migration 3 of 5 required to get your database in sync with this latest model version, so the transitional model that existed when version 3 was valid may no longer exist. In general, you should only do low level channel operations during migration. Though, the editing context is provided here as a convenience for use under controlled circumstances if you know it will not be a problem. You can use the IERXPostMigration interface if you need to execute (in a restricted way) EO operations.
Modifier and Type | Method and Description |
---|---|
void |
downgrade(com.webobjects.eocontrol.EOEditingContext editingContext,
com.webobjects.eoaccess.EOAdaptorChannel channel,
com.webobjects.eoaccess.EOModel model)
Called when migrating the database from the next version to this version.
|
NSArray<ERXModelVersion> |
modelDependencies()
Returns an array of ModelVersion objects that this migration depends on.
|
void |
upgrade(com.webobjects.eocontrol.EOEditingContext editingContext,
com.webobjects.eoaccess.EOAdaptorChannel channel,
com.webobjects.eoaccess.EOModel model)
Called when migrating the database from the last version to this version.
|
NSArray<ERXModelVersion> modelDependencies()
void upgrade(com.webobjects.eocontrol.EOEditingContext editingContext, com.webobjects.eoaccess.EOAdaptorChannel channel, com.webobjects.eoaccess.EOModel model) throws Throwable
editingContext
- the editing context you can perform EO operations with.channel
- the channel to perform low level operations withmodel
- the model being upgradedThrowable
- if something failsvoid downgrade(com.webobjects.eocontrol.EOEditingContext editingContext, com.webobjects.eoaccess.EOAdaptorChannel channel, com.webobjects.eoaccess.EOModel model) throws Throwable
editingContext
- the editing context you can perform EO operations with.channel
- the channel to perform low level operations withmodel
- the model being downgradedThrowable
- if something failsCopyright © 2002 – 2020 Project Wonder.