Re: CayenneModeler and Reengineering Database Schema

From: Michael Lepine (mikelepin..mail.com)
Date: Tue Nov 27 2007 - 10:05:23 EST

  • Next message: Michael Lepine: "Re: CayenneModeler and Reengineering Database Schema"

    This sounds like an excellent new feature. Thank you. I look forward
    to checking it out.

    On Nov 27, 2007 8:54 AM, Tore Halset <halse..vv.ntnu.no> wrote:
    > Hello.
    >
    > Currently (next milestone), you mark the datamap in the modeler and
    > select "Tools->Migrate Database Schema". After connecting to a
    > database, a new dialog will pop up and show the (supported) changes
    > between the model and the database. For each diff, you can choose to
    > ignore, merge to db or merge to model.
    >
    > I have implemented merge tokens for the most important changes for my
    > self. It include adding/removing tables and columns, changing char/
    > varchar length and changing not null. It does not yet support forreign
    > keys, primary keys, default values for not null and so on. It should
    > not be that hard to expand with new tokens.
    >
    > Currently, this is supported (custom alter table syntax) for MS SQL
    > Server, Derby, PostgreSQL and hsql as I do not have access to any
    > other database engines. This will hopefully expand.
    >
    > Take a look at the screenshots:
    > http://www.pvv.ntnu.no/~halset/tmp/caymigr/
    >
    > (I should really write this down in the wiki thingi..)
    >
    > Regards,
    > - Tore.
    >
    >
    > On Nov 27, 2007, at 15:31 , Michael Lepine wrote:
    >
    > > Very interesting. This sounds like what I'm looking for. Is there a
    > > link that contains a little more information on how this will work, or
    > > if you have a minute, would you give a brief synopsis of how this will
    > > be supported by the Modeler?
    > >
    > >
    > > On Nov 27, 2007 8:26 AM, Tore Halset <halse..vv.ntnu.no> wrote:
    > >> Hello.
    > >>
    > >> I think this is handled by the merge-stuff I have worked on. It will
    > >> be included in the next 3.0 milestone.
    > >>
    > >> https://issues.apache.org/cayenne/browse/CAY-885
    > >>
    > >> Regards,
    > >> - Tore.
    > >>
    > >>
    > >> On Nov 26, 2007, at 23:06 , Michael Lepine wrote:
    > >>
    > >>> Hello all.
    > >>>
    > >>> I am currently using CayenneModeler version 2.0.3 to reengineer a
    > >>> database schema and generate the subsequent Java classes. Some of
    > >>> the
    > >>> ObjEntity instances have primary/foreign keys mapped manually
    > >>> because
    > >>> these keys are generated by another process (outside of the Cayenne
    > >>> framework). The schema that I manage is very large and is
    > >>> periodically
    > >>> updated as part of maintenance and new development tasks. In order
    > >>> to
    > >>> update the model (...map.xml file) with the schema changes, I go
    > >>> through a fairly tedious process that involves the following:
    > >>>
    > >>> 1. update database schema
    > >>> 2. copy cayenne configuration files (cayenne.xml, ....map.xml and
    > >>> ...driver.xml) to a temp directory
    > >>> 3. start CayenneModeler
    > >>> 4. open the project from the temp directory
    > >>> 5. run Tools > Reengineer Database Schema
    > >>> 6. when prompted that a table exists, I opt to overwrite it to
    > >>> ensure
    > >>> I get all updates
    > >>> 7. save (temp) project
    > >>> 8. compare the differences between the temp map.xml and original
    > >>> map.xml files, manually copying the updates from the original to the
    > >>> temp file
    > >>> 9. test that I haven't made mistakes by opening the temp project and
    > >>> then double-checking it visually if it loads
    > >>>
    > >>> I do this because the manual mappings in the ObjEntity instances are
    > >>> removed when I run Reengineer Database Schema which does not seem
    > >>> like
    > >>> desired behavior. I would expect manual attribute mappings created
    > >>> in
    > >>> the ObjEntity instances to remain after reengineering a schema if:
    > >>>
    > >>> 1. the same schema is being reengineered
    > >>> 2. the corresponding DbEntity attribute still exists
    > >>>
    > >>> I downloaded the 2.0.4 and 3.0M2 versions of the Modeler to see if
    > >>> the
    > >>> behavior was different. It appears that manually mapped ObjEntity
    > >>> attributes are dropped in all versions under the above scenario.
    > >>>
    > >>> Is there an easier/more efficient way to update my model (map.xml)
    > >>> files?
    > >>>
    > >>> Has anyone else encountered a similar issue?
    > >>>
    > >>> Thank you for your help.
    > >>>
    > >>> - Mike
    > >>>
    > >>
    > >>
    > >
    >
    >



    This archive was generated by hypermail 2.0.0 : Tue Nov 27 2007 - 10:05:57 EST