Re: CayenneModeler and Reengineering Database Schema

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

  • Next message: Chris Gamache: "Re: ExtendedType and IN operator"

    Thanks for the reply, Michael. Until the next milestone release of
    Cayenne (as mentioned by Tore), I'll use the manual process I
    outlined.

    As far as a good comparison tool for Windows, I use Beyond Compare,
    http://www.scootersoftware.com/. It's not open source but it's free to
    try and a license is only $30. It's a great comparison tool.

    On Nov 27, 2007 8:19 AM, Michael Gentry <blacknex..mail.com> wrote:
    > Hi Michael,
    >
    > This question seems to pop up ever 3 months or so. There currently is
    > not a good way, inside the modeler, to re-reengineer the database
    > schema. It is a fairly difficult problem and we just haven't looked
    > into it enough yet. People have different techniques of handling
    > this. I personally just manually update the model once it is created
    > (since it doesn't change that frequently or drastically). Since you
    > are doing file compares (step 8), it would be really helpful if you
    > have a good graphical comparison tool. If on OS X, FileMerge is
    > really nice (and comes with the free Apple developer tools or might
    > even be part of the base OS). For Windows/Linux, I'm sure a Google
    > search would help you there.
    >
    > Sorry there isn't a better answer currently,
    >
    > /dev/mrg
    >
    >
    >
    > On Nov 26, 2007 5:06 PM, Michael Lepine <mikelepin..mail.com> 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:36:14 EST