Eclipse Community Forums - RDF feed
https://www.eclipse.org/forums/
Eclipse Community Forums[CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425256/#msg_425256
I have a problem that I can't resolve. I create a database for my model
with CDO2.0M3. When I update my model, for example, I add an attribute for
one class, I can't reload the old data from database. The exception is
following:
java.lang.IllegalStateException: range.size() != metaIDRange.size()
at
org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
at
org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
at
org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
at
org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
at
org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
at
org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
at
org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
at
org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
at
org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
at
org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
at
org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
at
org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
at
org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
at
org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
at
org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
at
org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
at
org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
at
org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
at
org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
at
org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
at
org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
at
org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
at
org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
at
org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
at org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
at
org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
at
org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
at org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
at
org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
at
org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
at
org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
at
org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
at
org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
at
org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
....
What should I do?]]>Xingxiao Lu2008-11-21T01:56:21-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425258/#msg_425258
Currently in CDO, a package with a given URI (X) should never be
modified. If you do so, a new URI(for the package) should be given.
If you follow this your objects will still be available using the old model.
Does CDO should do more ? (Let me think about it during the night (it is
around 23:48 here :-))
This is a very complicated question that needs to be think deeply!
Usually you will need to change the URI of your package.. and migrate
your databases...
Maybe Eike will have another idea.
Simon
xxlu wrote:
> Hi Ed,
> I have a problem that I can't resolve. I create a database for my model
> with CDO2.0M3. When I update my model, for example, I add an attribute for
> one class, I can't reload the old data from database. The exception is
> following:
>
> java.lang.IllegalStateException: range.size() != metaIDRange.size()
> at
> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
> at
> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
> at
> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
> at
> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
> at
> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
> at
> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
> at
> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
> at
> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
> at
> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
> at
> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
> at
> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
> at
> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
> at
> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
> at
> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
> at
> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
> at
> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
> at
> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
> at
> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
> at
> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
> at
> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
> at
> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
> at
> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
> at
> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
> at
> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
> at org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
> at
> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
> at
> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
> at org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
> at
> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
> at
> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
> at
> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
> at
> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
> at
> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
> at
> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
> at
> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
> ...
>
> What should I do?
>
>]]>Simon Mc Duff2008-11-21T04:49:00-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425260/#msg_425260
In my project, model will be updated frequently. It's so discommodious to
migrate my database everytime. ;(
"Simon McDuff" <smcduff@hotmail.com>
> At the moment CDO does not support evolving classes.
>
> Currently in CDO, a package with a given URI (X) should never be modified.
> If you do so, a new URI(for the package) should be given.
>
> If you follow this your objects will still be available using the old
> model.
>
> Does CDO should do more ? (Let me think about it during the night (it is
> around 23:48 here :-))
>
> This is a very complicated question that needs to be think deeply!
>
> Usually you will need to change the URI of your package.. and migrate
> your databases...
>
> Maybe Eike will have another idea.
>
> Simon
>
>
>
>
> xxlu wrote:
>> Hi Ed,
>> I have a problem that I can't resolve. I create a database for my
>> model with CDO2.0M3. When I update my model, for example, I add an
>> attribute for one class, I can't reload the old data from database. The
>> exception is following:
>>
>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>> at
>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>> at
>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>> at
>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>> at
>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>> at
>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>> at
>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>> at
>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>> at
>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>> at
>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>> at
>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>> at
>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>> at
>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>> at
>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>> at
>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>> at
>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>> at
>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>> at
>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>> at
>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>> at
>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>> at
>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>> at
>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>> at
>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>> at
>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>> at
>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>> at
>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>> at
>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>> at
>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>> at org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>> at
>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>> at
>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>> at
>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>> at
>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>> at
>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>> at
>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>> at
>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>> ...
>>
>> What should I do?]]>Xingxiao Lu2008-11-21T06:13:23-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425261/#msg_425261
maybe you could take look at this:
Quite impressive stuff. I allows you to modify a model, record the
changes you've made on it and then generate a plugin capable of update
old model instances to the new version.
We just need to execute that transformation with a CDOResource. We could
probably add the context menu migration action (which is currently only
available at package explorer/resource navigator context menu) to
CDOSession View by passing to their migration API a CDOResource instead.
And I think this would be a cool experiment :)
I've read It's going to be probably contributed to Eclipse.
xxlu escribió:
> I think this is a very complicated question, too. : (
>
> In my project, model will be updated frequently. It's so discommodious to
> migrate my database everytime. ;(
>
> "Simon McDuff" <smcduff@hotmail.com>
>> At the moment CDO does not support evolving classes.
>>
>> Currently in CDO, a package with a given URI (X) should never be modified.
>> If you do so, a new URI(for the package) should be given.
>>
>> If you follow this your objects will still be available using the old
>> model.
>>
>> Does CDO should do more ? (Let me think about it during the night (it is
>> around 23:48 here :-))
>>
>> This is a very complicated question that needs to be think deeply!
>>
>> Usually you will need to change the URI of your package.. and migrate
>> your databases...
>>
>> Maybe Eike will have another idea.
>>
>> Simon
>>
>>
>>
>>
>> xxlu wrote:
>>> Hi Ed,
>>> I have a problem that I can't resolve. I create a database for my
>>> model with CDO2.0M3. When I update my model, for example, I add an
>>> attribute for one class, I can't reload the old data from database. The
>>> exception is following:
>>>
>>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>>> at
>>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>>> at
>>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>>> at
>>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>>> at
>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>>> at
>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>>> at
>>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>>> at
>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>>> at
>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>>> at
>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>>> at
>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>>> at
>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>>> at
>>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>>> at
>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>>> at
>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>>> at
>>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>>> at
>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>>> at
>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>>> at
>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>>> at
>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>>> at
>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>>> at
>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>>> at org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>>> at
>>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>>> at
>>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>>> at
>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>>> at
>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>>> at
>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>>> at
>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>>> at
>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>>> ...
>>>
>>> What should I do?
>
>]]>Victor Roldan Betancort2008-11-21T09:14:28-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425270/#msg_425270
Indeed, model evolution is a very interesting problem and certainly hard
to solve in the context of a persistent model repository with support
for temporality. I'd also appreciate to start discussion and see if we
can do something constructive in this area.
I also think that COPE is an interesting first step to look at. But in
the long term I'd like to see an approach that doesn't go through a
regular user transaction at client side but rather modifies the
repository directly at the server side. For huge models this seems to be
the only appropriate way and models seem to grow constantly.
Here are some points to consider:
1) Would COPE be able to help us at the server side? We don't have EMF
there...
2) Should there be a new protocol (signals) to implement API like
CDOSessionPackageManager::evolvePackage(String oldURI, EPackage
newPackage, CDODataMigrationRules rules) ?
3) Should these data migration rules operate on the CDORevision level or
on back-end concepts level?
4) What about on-demand migration per instance (as opposed to one huge
migration process for the whole repository)?
Víctor Roldán Betancort schrieb:
> xxlu, Simon,
>
> maybe you could take look at this:
>
> "COPE - Coupled Evolution of Metamodels and Models"
> http://cope.in.tum.de
>
> Quite impressive stuff. I allows you to modify a model, record the
> changes you've made on it and then generate a plugin capable of update
> old model instances to the new version.
>
> Still, you would need to change your model URI (for instance, changing
> the version: from http://foo.bar.org/example/1.0 to
> http://foo.bar.org/example/2.0), but the generated migration plugin
> should help you dealing with it!
>
> We just need to execute that transformation with a CDOResource. We
> could probably add the context menu migration action (which is
> currently only available at package explorer/resource navigator
> context menu) to CDOSession View by passing to their migration API a
> CDOResource instead.
>
> And I think this would be a cool experiment :)
>
> I've read It's going to be probably contributed to Eclipse.
>
> xxlu escribió:
>> I think this is a very complicated question, too. : (
>>
>> In my project, model will be updated frequently. It's so
>> discommodious to migrate my database everytime. ;(
>>
>> "Simon McDuff" <smcduff@hotmail.com>
>>> At the moment CDO does not support evolving classes.
>>>
>>> Currently in CDO, a package with a given URI (X) should never be
>>> modified. If you do so, a new URI(for the package) should be given.
>>>
>>> If you follow this your objects will still be available using the
>>> old model.
>>>
>>> Does CDO should do more ? (Let me think about it during the night
>>> (it is around 23:48 here :-))
>>>
>>> This is a very complicated question that needs to be think deeply!
>>>
>>> Usually you will need to change the URI of your package.. and
>>> migrate your databases...
>>>
>>> Maybe Eike will have another idea.
>>>
>>> Simon
>>>
>>>
>>>
>>>
>>> xxlu wrote:
>>>> Hi Ed,
>>>> I have a problem that I can't resolve. I create a database for
>>>> my model with CDO2.0M3. When I update my model, for example, I add
>>>> an attribute for one class, I can't reload the old data from
>>>> database. The exception is following:
>>>>
>>>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>>>>
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>>>>
>>>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>>>>
>>>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>>>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>>>> at
>>>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>>>>
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>>>>
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>>>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>>>> at
>>>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>>>>
>>>> at
>>>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>>>>
>>>> at
>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>>>>
>>>> at
>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>>>>
>>>> ...
>>>>
>>>> What should I do?
>>
>>]]>Eike Stepper2008-11-21T12:19:20-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425275/#msg_425275
> xxlu, Simon,
>
> maybe you could take look at this:
>
> "COPE - Coupled Evolution of Metamodels and Models"
> http://cope.in.tum.de
>
I saw it few days ago while reading Ed blogs!! Very interesting!!
> Quite impressive stuff. I allows you to modify a model, record the
> changes you've made on it and then generate a plugin capable of update
> old model instances to the new version.
>
> Still, you would need to change your model URI (for instance, changing
> the version: from http://foo.bar.org/example/1.0 to
> http://foo.bar.org/example/2.0), but the generated migration plugin
> should help you dealing with it!
It will work lovely with CDO since the URI will change!
>
> We just need to execute that transformation with a CDOResource. We could
> probably add the context menu migration action (which is currently only
> available at package explorer/resource navigator context menu) to
> CDOSession View by passing to their migration API a CDOResource instead.
>
> And I think this would be a cool experiment :)
>
> I've read It's going to be probably contributed to Eclipse.
Good to know!
>
> xxlu escribió:
>> I think this is a very complicated question, too. : (
>>
>> In my project, model will be updated frequently. It's so discommodious
>> to migrate my database everytime. ;(
>>
>> "Simon McDuff" <smcduff@hotmail.com>
>>> At the moment CDO does not support evolving classes.
>>>
>>> Currently in CDO, a package with a given URI (X) should never be
>>> modified. If you do so, a new URI(for the package) should be given.
>>>
>>> If you follow this your objects will still be available using the old
>>> model.
>>>
>>> Does CDO should do more ? (Let me think about it during the night (it
>>> is around 23:48 here :-))
>>>
>>> This is a very complicated question that needs to be think deeply!
>>>
>>> Usually you will need to change the URI of your package.. and
>>> migrate your databases...
>>>
>>> Maybe Eike will have another idea.
>>>
>>> Simon
>>>
>>>
>>>
>>>
>>> xxlu wrote:
>>>> Hi Ed,
>>>> I have a problem that I can't resolve. I create a database for
>>>> my model with CDO2.0M3. When I update my model, for example, I add
>>>> an attribute for one class, I can't reload the old data from
>>>> database. The exception is following:
>>>>
>>>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>>>>
>>>> at
>>>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>>>>
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>>>>
>>>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>>>>
>>>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>>>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>>>> at
>>>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>>>>
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>>>>
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>>>>
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>>>>
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>>>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>>>> at
>>>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>>>>
>>>> at
>>>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>>>>
>>>> at
>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>>>>
>>>> at
>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>>>>
>>>> at
>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>>>>
>>>> ...
>>>>
>>>> What should I do?
>>
>>]]>Simon Mc Duff2008-11-21T12:43:43-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425276/#msg_425276
:-)
Simon McDuff wrote:
> Víctor Roldán Betancort wrote:
>> xxlu, Simon,
>>
>> maybe you could take look at this:
>>
>> "COPE - Coupled Evolution of Metamodels and Models"
>> http://cope.in.tum.de
>>
> I saw it few days ago while reading Ed blogs!! Very interesting!!
>
>> Quite impressive stuff. I allows you to modify a model, record the
>> changes you've made on it and then generate a plugin capable of update
>> old model instances to the new version.
>>
>> Still, you would need to change your model URI (for instance, changing
>> the version: from http://foo.bar.org/example/1.0 to
>> http://foo.bar.org/example/2.0), but the generated migration plugin
>> should help you dealing with it!
>
> It will work lovely with CDO since the URI will change!
>>
>> We just need to execute that transformation with a CDOResource. We
>> could probably add the context menu migration action (which is
>> currently only available at package explorer/resource navigator
>> context menu) to CDOSession View by passing to their migration API a
>> CDOResource instead.
>>
>> And I think this would be a cool experiment :)
>>
>> I've read It's going to be probably contributed to Eclipse.
> Good to know!
>>
>> xxlu escribió:
>>> I think this is a very complicated question, too. : (
>>>
>>> In my project, model will be updated frequently. It's so
>>> discommodious to migrate my database everytime. ;(
>>>
>>> "Simon McDuff" <smcduff@hotmail.com>
>>>> At the moment CDO does not support evolving classes.
>>>>
>>>> Currently in CDO, a package with a given URI (X) should never be
>>>> modified. If you do so, a new URI(for the package) should be given.
>>>>
>>>> If you follow this your objects will still be available using the
>>>> old model.
>>>>
>>>> Does CDO should do more ? (Let me think about it during the night
>>>> (it is around 23:48 here :-))
>>>>
>>>> This is a very complicated question that needs to be think deeply!
>>>>
>>>> Usually you will need to change the URI of your package.. and
>>>> migrate your databases...
>>>>
>>>> Maybe Eike will have another idea.
>>>>
>>>> Simon
>>>>
>>>>
>>>>
>>>>
>>>> xxlu wrote:
>>>>> Hi Ed,
>>>>> I have a problem that I can't resolve. I create a database for
>>>>> my model with CDO2.0M3. When I update my model, for example, I add
>>>>> an attribute for one class, I can't reload the old data from
>>>>> database. The exception is following:
>>>>>
>>>>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>>>>>
>>>>> at
>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>>>>>
>>>>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>>>>> at
>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>>>>>
>>>>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>>>>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>>>>> at
>>>>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>>>>>
>>>>> at
>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>>>>>
>>>>> at
>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>>>>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>>>>>
>>>>> at
>>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>>>>>
>>>>> ...
>>>>>
>>>>> What should I do?
>>>
>>>]]>Simon Mc Duff2008-11-21T12:45:13-00:00Re: [CDO/Teneo]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425473/#msg_425473
I experimentalize this with Teneo. I found Teneo can automatically
update database by modified model. I think this feature is necessary. I
should not migrate our database once my model modified. :(
"Simon McDuff" <smcduff@hotmail.com> :
> Didn't refresh my newsgroup!! Eike already answered!!
>
> :-)
>
> Simon McDuff wrote:
>> V]]>Xingxiao Lu2008-11-27T01:24:35-00:00Re: [CDO/Teneo]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425475/#msg_425475
Please notice that Martin Taal from the Teneo project developed a CDO
back-end integration based on Teneo.
So you might be able to enjoy the advantages of both CDO and Teneo.
xxlu schrieb:
> Hi,
> I experimentalize this with Teneo. I found Teneo can automatically
> update database by modified model. I think this feature is necessary. I
> should not migrate our database once my model modified. :(
>
> "Simon McDuff" <smcduff@hotmail.com> :
>
>> Didn't refresh my newsgroup!! Eike already answered!!
>>
>> :-)
>>
>> Simon McDuff wrote:
>>
>>> Víctor Roldán Betancort wrote:
>>>
>>>> xxlu, Simon,
>>>>
>>>> maybe you could take look at this:
>>>>
>>>> "COPE - Coupled Evolution of Metamodels and Models"
>>>> http://cope.in.tum.de
>>>>
>>>>
>>> I saw it few days ago while reading Ed blogs!! Very interesting!!
>>>
>>>
>>>> Quite impressive stuff. I allows you to modify a model, record the
>>>> changes you've made on it and then generate a plugin capable of update
>>>> old model instances to the new version.
>>>>
>>>> Still, you would need to change your model URI (for instance, changing
>>>> the version: from http://foo.bar.org/example/1.0 to
>>>> http://foo.bar.org/example/2.0), but the generated migration plugin
>>>> should help you dealing with it!
>>>>
>>> It will work lovely with CDO since the URI will change!
>>>
>>>> We just need to execute that transformation with a CDOResource. We could
>>>> probably add the context menu migration action (which is currently only
>>>> available at package explorer/resource navigator context menu) to
>>>> CDOSession View by passing to their migration API a CDOResource instead.
>>>>
>>>> And I think this would be a cool experiment :)
>>>>
>>>> I've read It's going to be probably contributed to Eclipse.
>>>>
>>> Good to know!
>>>
>>>> xxlu escribió:
>>>>
>>>>> I think this is a very complicated question, too. : (
>>>>>
>>>>> In my project, model will be updated frequently. It's so discommodious
>>>>> to migrate my database everytime. ;(
>>>>>
>>>>> "Simon McDuff" <smcduff@hotmail.com>
>>>>>
>>>>>> At the moment CDO does not support evolving classes.
>>>>>>
>>>>>> Currently in CDO, a package with a given URI (X) should never be
>>>>>> modified. If you do so, a new URI(for the package) should be given.
>>>>>>
>>>>>> If you follow this your objects will still be available using the old
>>>>>> model.
>>>>>>
>>>>>> Does CDO should do more ? (Let me think about it during the night (it
>>>>>> is around 23:48 here :-))
>>>>>>
>>>>>> This is a very complicated question that needs to be think deeply!
>>>>>>
>>>>>> Usually you will need to change the URI of your package.. and migrate
>>>>>> your databases...
>>>>>>
>>>>>> Maybe Eike will have another idea.
>>>>>>
>>>>>> Simon
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> xxlu wrote:
>>>>>>
>>>>>>> Hi Ed,
>>>>>>> I have a problem that I can't resolve. I create a database for my
>>>>>>> model with CDO2.0M3. When I update my model, for example, I add an
>>>>>>> attribute for one class, I can't reload the old data from database.
>>>>>>> The exception is following:
>>>>>>>
>>>>>>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>>>>>>> at
>>>>>>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>>>>>>> at
>>>>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>>>>>>> at
>>>>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>>>>>>> at
>>>>>>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>>>>>>> at
>>>>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>>>>>>> at
>>>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>>>>>>> at
>>>>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>>>>>>> at
>>>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>>>>>>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>>>>>>> at
>>>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>>>>>>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>>>>>>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>>>>>>> at
>>>>>>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>>>>>>> at
>>>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>>>>>>> at
>>>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>>>>>>> at
>>>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>>>>>>> at
>>>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>>>>>>> at
>>>>>>> org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>>>>>>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>>>>>>> at
>>>>>>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>>>>>>> at
>>>>>>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>>>>>>> at
>>>>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>>>>>>> at
>>>>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>>>>>>> at
>>>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>>>>>>> at
>>>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>>>>>>> at
>>>>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>>>>>>> ...
>>>>>>>
>>>>>>> What should I do?
>>>>>>>
>>>>>
>
>
>]]>Eike Stepper2008-11-27T05:45:58-00:00Re: [CDO/Teneo]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425477/#msg_425477
can support this feature. I will try it later.
"Eike Stepper" <stepper@esc-net.de>
> Xxlu,
>
> Please notice that Martin Taal from the Teneo project developed a CDO
> back-end integration based on Teneo.
> So you might be able to enjoy the advantages of both CDO and Teneo.
>
> Cheers
> /Eike
>
> ----
> http://thegordian.blogspot.com
>
>
>
> xxlu schrieb:
>> Hi,
>> I experimentalize this with Teneo. I found Teneo can automatically
>> update database by modified model. I think this feature is necessary. I
>> should not migrate our database once my model modified. :(
>>
>> "Simon McDuff" <smcduff@hotmail.com> :
>>
>>> Didn't refresh my newsgroup!! Eike already answered!!
>>>
>>> :-)
>>>
>>> Simon McDuff wrote:
>>>
>>>> V]]>Xingxiao Lu2008-11-27T07:17:52-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425495/#msg_425495
"Simon McDuff" <smcduff@hotmail.com>
> At the moment CDO does not support evolving classes.
>
> Currently in CDO, a package with a given URI (X) should never be modified.
> If you do so, a new URI(for the package) should be given.
>
> If you follow this your objects will still be available using the old
> model.
>
> Does CDO should do more ? (Let me think about it during the night (it is
> around 23:48 here :-))
>
> This is a very complicated question that needs to be think deeply!
>
> Usually you will need to change the URI of your package.. and migrate
> your databases...
>
> Maybe Eike will have another idea.
>
> Simon
>
>
>
>
> xxlu wrote:
>> Hi Ed,
>> I have a problem that I can't resolve. I create a database for my
>> model with CDO2.0M3. When I update my model, for example, I add an
>> attribute for one class, I can't reload the old data from database. The
>> exception is following:
>>
>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>> at
>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>> at
>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>> at
>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>> at
>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>> at
>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>> at
>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>> at
>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>> at
>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>> at
>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>> at
>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>> at
>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>> at
>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>> at
>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>> at
>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>> at
>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>> at
>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>> at
>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>> at
>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>> at
>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>> at
>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>> at
>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>> at
>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>> at
>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>> at
>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>> at
>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>> at
>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>> at
>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>> at org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>> at
>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>> at
>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>> at
>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>> at
>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>> at
>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>> at
>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>> at
>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>> ...
>>
>> What should I do?]]>Xingxiao Lu2008-11-28T02:34:07-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425496/#msg_425496
database? Any suggestion?
"xxlu" <lu.xingxiao@gmail.com>
>I want to know how can I migrate my databases. Thanks. :)
>
>
> "Simon McDuff" <smcduff@hotmail.com>
>> At the moment CDO does not support evolving classes.
>>
>> Currently in CDO, a package with a given URI (X) should never be
>> modified. If you do so, a new URI(for the package) should be given.
>>
>> If you follow this your objects will still be available using the old
>> model.
>>
>> Does CDO should do more ? (Let me think about it during the night (it is
>> around 23:48 here :-))
>>
>> This is a very complicated question that needs to be think deeply!
>>
>> Usually you will need to change the URI of your package.. and migrate
>> your databases...
>>
>> Maybe Eike will have another idea.
>>
>> Simon
>>
>>
>>
>>
>> xxlu wrote:
>>> Hi Ed,
>>> I have a problem that I can't resolve. I create a database for my
>>> model with CDO2.0M3. When I update my model, for example, I add an
>>> attribute for one class, I can't reload the old data from database. The
>>> exception is following:
>>>
>>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>>> at
>>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>>> at
>>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>>> at
>>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>>> at
>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>>> at
>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>>> at
>>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>>> at
>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>>> at
>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>>> at
>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>>> at
>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>>> at
>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>>> at
>>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>>> at
>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>>> at
>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>>> at
>>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>>> at
>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>>> at
>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>>> at
>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>>> at
>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>>> at
>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>>> at
>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>>> at
>>> org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>>> at
>>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>>> at
>>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>>> at
>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>>> at
>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>>> at
>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>>> at
>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>>> at
>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>>> ...
>>>
>>> What should I do?
>
>]]>Xingxiao Lu2008-11-28T02:58:53-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425497/#msg_425497
I've opened this bugzilla:
xxlu schrieb:
> Shoud I rebuild a database, then use ecore2ecore or other methods migrate my
> database? Any suggestion?
>
> "xxlu" <lu.xingxiao@gmail.com>
>
>> I want to know how can I migrate my databases. Thanks. :)
>>
>>
>> "Simon McDuff" <smcduff@hotmail.com>
>>
>>> At the moment CDO does not support evolving classes.
>>>
>>> Currently in CDO, a package with a given URI (X) should never be
>>> modified. If you do so, a new URI(for the package) should be given.
>>>
>>> If you follow this your objects will still be available using the old
>>> model.
>>>
>>> Does CDO should do more ? (Let me think about it during the night (it is
>>> around 23:48 here :-))
>>>
>>> This is a very complicated question that needs to be think deeply!
>>>
>>> Usually you will need to change the URI of your package.. and migrate
>>> your databases...
>>>
>>> Maybe Eike will have another idea.
>>>
>>> Simon
>>>
>>>
>>>
>>>
>>> xxlu wrote:
>>>
>>>> Hi Ed,
>>>> I have a problem that I can't resolve. I create a database for my
>>>> model with CDO2.0M3. When I update my model, for example, I add an
>>>> attribute for one class, I can't reload the old data from database. The
>>>> exception is following:
>>>>
>>>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>>>> at
>>>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>>>> at
>>>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>>>> at
>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>>>> at
>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>>>> at
>>>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>>>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>>>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>>>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>>>> at
>>>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>>>> at
>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>>>> at
>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>>>> at
>>>> org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>>>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>>>> at
>>>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>>>> at
>>>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>>>> at
>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>>>> at
>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>>>> at
>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>>>> at
>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>>>> ...
>>>>
>>>> What should I do?
>>>>
>>
>
>
>]]>Eike Stepper2008-11-28T07:39:54-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425498/#msg_425498
Thank you very much!
But I think it's impossible to migrate the objects in the same schema.
For example:
test.ecroe V1 and test.ecore V2 both have classA. When excute migration,
exception will be throwed:
org.eclipse.net4j.db.DBException: DBTable exists classA. :(
"Eike Stepper" <stepper@esc-net.de>
> Xxlu,
>
> I've opened this bugzilla:
>
> 256856: Support model evolution
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=256856
>
> My comment 1 in this bugzilla explains a possible *manual* way to migrate
> data instances after model evolution...
>
> Cheers
> /Eike
>
> ----
> http://thegordian.blogspot.com
>
>
>
> xxlu schrieb:
>> Shoud I rebuild a database, then use ecore2ecore or other methods migrate
>> my database? Any suggestion?
>>
>> "xxlu" <lu.xingxiao@gmail.com>
>>
>>> I want to know how can I migrate my databases. Thanks. :)
>>>
>>>
>>> "Simon McDuff" <smcduff@hotmail.com>
>>>
>>>> At the moment CDO does not support evolving classes.
>>>>
>>>> Currently in CDO, a package with a given URI (X) should never be
>>>> modified. If you do so, a new URI(for the package) should be given.
>>>>
>>>> If you follow this your objects will still be available using the old
>>>> model.
>>>>
>>>> Does CDO should do more ? (Let me think about it during the night (it
>>>> is around 23:48 here :-))
>>>>
>>>> This is a very complicated question that needs to be think deeply!
>>>>
>>>> Usually you will need to change the URI of your package.. and migrate
>>>> your databases...
>>>>
>>>> Maybe Eike will have another idea.
>>>>
>>>> Simon
>>>>
>>>>
>>>>
>>>>
>>>> xxlu wrote:
>>>>
>>>>> Hi Ed,
>>>>> I have a problem that I can't resolve. I create a database for my
>>>>> model with CDO2.0M3. When I update my model, for example, I add an
>>>>> attribute for one class, I can't reload the old data from database.
>>>>> The exception is following:
>>>>>
>>>>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>>>>> at
>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>>>>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>>>>> at
>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>>>>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>>>>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>>>>> at
>>>>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>>>>> at
>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>>>>> at
>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>>>>> at
>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>>>>> at
>>>>> org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>>>>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>>>>> at
>>>>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>>>>> at
>>>>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>>>>> at
>>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>>>>> at
>>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>>>>> at
>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>>>>> at
>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>>>>> at
>>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>>>>> ...
>>>>>
>>>>> What should I do?
>>>>>
>>>
>>
>>
>>]]>Xingxiao Lu2008-11-28T08:04:53-00:00Re: [CDO]Model update
https://www.eclipse.org/forums/index.php/mv/msg/135405/425499/#msg_425499
--------------010201080901010004000704
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit
Xxlu,
Please try the following option in the cdo-server.xml (given, you're
using the DBStore!):
xxlu schrieb:
> Eike,
> Thank you very much!
> But I think it's impossible to migrate the objects in the same schema.
> For example:
> test.ecroe V1 and test.ecore V2 both have classA. When excute migration,
> exception will be throwed:
> org.eclipse.net4j.db.DBException: DBTable exists classA. :(
>
> "Eike Stepper" <stepper@esc-net.de>
>
>> Xxlu,
>>
>> I've opened this bugzilla:
>>
>> 256856: Support model evolution
>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=256856
>>
>> My comment 1 in this bugzilla explains a possible *manual* way to migrate
>> data instances after model evolution...
>>
>> Cheers
>> /Eike
>>
>> ----
>> http://thegordian.blogspot.com
>>
>>
>>
>> xxlu schrieb:
>>
>>> Shoud I rebuild a database, then use ecore2ecore or other methods migrate
>>> my database? Any suggestion?
>>>
>>> "xxlu" <lu.xingxiao@gmail.com>
>>>
>>>
>>>> I want to know how can I migrate my databases. Thanks. :)
>>>>
>>>>
>>>> "Simon McDuff" <smcduff@hotmail.com>
>>>>
>>>>
>>>>> At the moment CDO does not support evolving classes.
>>>>>
>>>>> Currently in CDO, a package with a given URI (X) should never be
>>>>> modified. If you do so, a new URI(for the package) should be given.
>>>>>
>>>>> If you follow this your objects will still be available using the old
>>>>> model.
>>>>>
>>>>> Does CDO should do more ? (Let me think about it during the night (it
>>>>> is around 23:48 here :-))
>>>>>
>>>>> This is a very complicated question that needs to be think deeply!
>>>>>
>>>>> Usually you will need to change the URI of your package.. and migrate
>>>>> your databases...
>>>>>
>>>>> Maybe Eike will have another idea.
>>>>>
>>>>> Simon
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> xxlu wrote:
>>>>>
>>>>>
>>>>>> Hi Ed,
>>>>>> I have a problem that I can't resolve. I create a database for my
>>>>>> model with CDO2.0M3. When I update my model, for example, I add an
>>>>>> attribute for one class, I can't reload the old data from database.
>>>>>> The exception is following:
>>>>>>
>>>>>> java.lang.IllegalStateException: range.size() != metaIDRange.size()
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.CDOSessionImpl.registerEPackage (CDOSessionImpl.java:544)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.util.CDOPackageRegistryImpl$Rem otePackageDescriptor.getEPackage(CDOPackageRegistryImpl.java :182)
>>>>>> at
>>>>>> org.eclipse.emf.ecore.impl.EPackageRegistryImpl.getEPackage( EPackageRegistryImpl.java:133)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.CDOSessionPackageManagerImpl.lo adPackage(CDOSessionPackageManagerImpl.java:152)
>>>>>> at
>>>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loa d(CDOPackageImpl.java:401)
>>>>>> at
>>>>>> org.eclipse.emf.cdo.internal.common.model.CDOPackageImpl.loo kupClass(CDOPackageImpl.java:288)
>>>>>> at
>>>>>> org.eclipse.emf.cdo.internal.common.model.CDOClassRefImpl.re solve(CDOClassRefImpl.java:71)
>>>>>> at
>>>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO ClassRefAndResolve(CDODataInputImpl.java:218)
>>>>>> at
>>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionImpl . <init>(CDORevisionImpl.java:114)
>>>>>> at
>>>>>> org.eclipse.emf.cdo.internal.common.CDODataInputImpl.readCDO Revision(CDODataInputImpl.java:309)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:116)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.protocol.LoadRevisionRequest.co nfirming(LoadRevisionRequest.java:1)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.protocol.CDOClientRequest.confi rming(CDOClientRequest.java:103)
>>>>>> at
>>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExtendedI nput(RequestWithConfirmation.java:118)
>>>>>> at org.eclipse.net4j.signal.Signal.doInput(Signal.java:317)
>>>>>> at
>>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.doExecute(R equestWithConfirmation.java:98)
>>>>>> at org.eclipse.net4j.signal.SignalActor.execute(SignalActor.jav a:68)
>>>>>> at org.eclipse.net4j.signal.Signal.runSync(Signal.java:237)
>>>>>> at
>>>>>> org.eclipse.net4j.signal.SignalProtocol.startSignal(SignalPr otocol.java:392)
>>>>>> at
>>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:82)
>>>>>> at
>>>>>> org.eclipse.net4j.signal.RequestWithConfirmation.send(Reques tWithConfirmation.java:73)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.send(CDO RevisionManagerImpl.java:149)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.CDORevisionManagerImpl.loadRevi sion(CDORevisionManagerImpl.java:104)
>>>>>> at
>>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:94)
>>>>>> at
>>>>>> org.eclipse.emf.cdo.internal.common.revision.CDORevisionReso lverImpl.getRevision(CDORevisionResolverImpl.java:1)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getRevision(CDOView Impl.java:714)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.createObject(CDOVie wImpl.java:857)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.getObject(CDOViewIm pl.java:752)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.CDOTransactionImpl.getObject(CD OTransactionImpl.java:449)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.CDOViewImpl.convertIDToObject(C DOViewImpl.java:1023)
>>>>>> at
>>>>>> org.eclipse.emf.internal.cdo.CDOStore.convertToEMF(CDOStore. java:381)
>>>>>> at org.eclipse.emf.internal.cdo.CDOStore.get(CDOStore.java:175)
>>>>>> at
>>>>>> org.eclipse.emf.ecore.impl.EStoreEObjectImpl$BasicEStoreELis t.delegateGet(EStoreEObjectImpl.java:225)
>>>>>> at
>>>>>> org.eclipse.emf.common.util.DelegatingEList.get(DelegatingEL ist.java:396)
>>>>>> at
>>>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.doNext (DelegatingEList.java:1075)
>>>>>> at
>>>>>> org.eclipse.emf.common.util.DelegatingEList$EIterator.next(D elegatingEList.java:1062)
>>>>>> at
>>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getChildre n(ItemProviderAdapter.java:340)
>>>>>> at
>>>>>> org.eclipse.emf.edit.provider.ItemProviderAdapter.getElement s(ItemProviderAdapter.java:310)
>>>>>> at
>>>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvid er.getElements(AdapterFactoryContentProvider.java:160)
>>>>>> ...
>>>>>>
>>>>>> What should I do?
>>>>>>
>>>>>>
>>>
>>>
>
>
>
xxlu schrieb:=20
Eike,
Thank you very much!
But I think it's impossible to migrate the objects in the same =
schema.=20
For example:
test.ecroe V1 and test.ecore V2 both have classA. When excute =
migration,=20
exception will be throwed:
org.eclipse.net4j.db.DBException: DBTable exists classA. :(
At the moment CDO does not support evolving classes.
Currently in CDO, a package with a given URI (X) should never be=20
modified. If you do so, a new URI(for the package) should be given.
If you follow this your objects will still be available using the old=20
model.
Does CDO should do more ? (Let me think about it during the night (it=20
is around 23:48 here :-))
This is a very complicated question that needs to be think deeply!
Usually you will need to change the URI of your package.. and migrate=20
your databases...
Maybe Eike will have another idea.
Simon
xxlu wrote:
Hi Ed,
I have a problem that I can't resolve. I create a database for my=20
model with CDO2.0M3. When I update my model, for example, I add an=20
attribute for one class, I can't reload the old data from database.=20
The exception is following:
xxlu schrieb:
</PRE>
<BLOCKQUOTE type=3D"cite"><PRE wrap=3D"">Shoud I rebuild a =
database, then use ecore2ecore or other methods migrate=20
my database? Any suggestion?
</PRE>
<BLOCKQUOTE type=3D"cite"><PRE wrap=3D"">At the moment CDO =
does not support evolving classes.
Currently in CDO, a package with a given URI (X) should never be=20
modified. If you do so, a new URI(for the package) should be given.
If you follow this your objects will still be available using the old=20
model.
Does CDO should do more ? (Let me think about it during the night (it=20
is around 23:48 here :-))
This is a very complicated question that needs to be think deeply!
Usually you will need to change the URI of your package.. and migrate=20
your databases...
Maybe Eike will have another idea.
Simon
xxlu wrote:
</PRE>
<BLOCKQUOTE type=3D"cite"><PRE wrap=3D"">Hi Ed,
I have a problem that I can't resolve. I create a database for my=20
model with CDO2.0M3. When I update my model, for example, I add an=20
attribute for one class, I can't reload the old data from database.=20
The exception is following: