Re: DB Generation

From: Michael Gentry (mgentr..asslight.net)
Date: Wed Jan 14 2009 - 09:59:13 EST

  • Next message: mr.abanjo: "Re: DB Generation"

    The AUTO_PK_SUPPORT table is a "hidden" table used by Cayenne for some, but
    not all, databases. For a database that doesn't support sequences (Oracle
    and PostgreSQL do) or auto-increment (MySQL does), then Cayenne will fall
    back to using the AUTO_PK_SUPPORT table to help it generate primary keys for
    inserts.
    I'm not sure offhand why you'd see your tables with HSQLDB, but not MySQL.
     I'm assuming you are programmatically setting the JDBC driver and URL
    elsewhere and are using the default DB Adapter (which tries to guess which
    one to actually use)?

    On Wed, Jan 14, 2009 at 8:46 AM, mr. abanjo <mr.abanj..mail.com> wrote:

    > Hi,i have configured a simple cayenne datamap for my application with 2
    > table.
    > All works fine, i can read/write into them without problem.
    >
    > Now, i want to create at runtime the database schema, so if is the first
    > time and the database is empty i can generate it on the fly.
    > I do it with this code (taken from petstore sample in cayenne's wiki):
    >
    >
    > DataDomain domain =
    > Configuration.getSharedConfiguration().getDomain();
    >
    > DataNode node = getDataNode(domain);
    > DbGenerator generator = new DbGenerator(node.getAdapter(),
    > getDataMap(domain));
    > try {
    > generator.runGenerator(node.getDataSource());
    > } catch (Exception e) {
    > throw new Exception("Error generating DB schema", e);
    > }
    >
    > If i test this code on a HSQLDB it works well.
    > The strange thing is that after execution i have 3 tables instead of 2...
    > infact there is also "AUTO_PK_SUPPORT" that i haven't defined in my
    > datamap.
    > I suppose that it is a table used by canyenne.
    >
    > But if i test it on MYSQL db it doesn't work.
    > ONLY the "AUTO_PK_SUPPORT" is created.
    >
    > Anyone have idea why the same code works in 2 different way?
    >
    > The user that i use to connect to mysql haves all privileges.
    >
    >
    > Thanks
    > Davide
    >



    This archive was generated by hypermail 2.0.0 : Wed Jan 14 2009 - 09:59:48 EST