You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-user@db.apache.org by tyju tiui <jc...@yahoo.com> on 2007/12/06 23:05:33 UTC

ddl utils schema with existing db

Hi,

I'm confused about the difference between database and schema definition in ddlutils.
If I have an existing database and would like to create a new schema within that database how would I go about that (via ant or programmatically)?

For servers like MySQL which don't have a notion of separate schema's inside a single database I would have to create a new database each time. For servers like PostgreSQL and Oracle which do support separate schemas within a single database I shouldn't need to create a new db each time I need a new schema. Does this make sense?

Thanks,

Ty






      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ 

Re: ddl utils schema with existing db

Posted by Thomas Dudziak <to...@gmail.com>.
On Dec 6, 2007 2:05 PM, tyju tiui <jc...@yahoo.com> wrote:

> I'm confused about the difference between database and schema definition in ddlutils.
> If I have an existing database and would like to create a new schema within that database how would I go about that (via ant or programmatically)?
>
> For servers like MySQL which don't have a notion of separate schema's inside a single database I would have to create a new database each time. For servers like PostgreSQL and Oracle which do support separate schemas within a single database I shouldn't need to create a new db each time I need a new schema. Does this make sense?

DdlUtils' support for schemas within the database is weak at the
moment. You can create tables etc. within a specific schema by
prefixing the table names etc. with the schema. E.g.

<database name="test">
  <table name="testschema.test">
    ...
  </table>
</database>

For databases like Oracle, you can achieve somethin similar by
accessing the database using a user corresponding to the schema. E.g.
to place something in schema 'testschema', create the schema
indirectly by creating a user of the same name, and then use this user
to connect to the database. Any tables created via an unqualified name
will then be placed in that schema.
This also works for reading the database model from a schema (using
the schema pattern to restrict which schemas to read from).

Tom