db-ddlutils-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rusty Wright <ru...@berkeley.edu>
Subject Re: autoincrement
Date Wed, 23 Aug 2006 06:07:01 GMT
If I feed the waitlist_generated.sql file to the postgresql command line 
program psql then it successfully creates the tables.

I'm also getting some warning that I don't understand (I'm a postgresql 
newbie):

> CREATE SEQUENCE
> psql:waitlist_generated.sql:40: NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit
index "waitlist_pkey" for table "waitlist"
> CREATE TABLE

(I don't even know how to examine the tables that I've just created.  Duh.)

Rusty Wright wrote:
> Sorry, I wasn't clear about how I'm using DdlUtils.  I'm using ant.  In 
> my build.xml file the ant target for DdlUtils contains the following.
> 
>>         <ddlToDatabase>
>>             <fileset dir="sql">
>>                 <include name="waitlist.xml"/>
>>             </fileset>
>>
>>             <database driverClassName="${db1_driverClassName}"
>>                       url="${db1_url}"
>>                       username="${db1_username}"
>>                       password="${db1_password}"
>>             />
>>
>>             <writeSchemaToDatabase />
>>
>>             <writeSchemaSqlToFile
>>                 alterDatabase="false"
>>                 doDrops="false"
>>                 failOnError="true"
>>                 outputFile="sql/waitlist_generated.sql"
>>             />
>>         </ddlToDatabase>
> 
> When I run it for mysql my build.xml has
> 
>>     <property
>>         file="db.properties-mysql"
>>     />
> 
> And when I run it for postgresql I change build.xml so that it has
> 
>>     <property
>>         file="db.properties-postgres"
>>     />
> 
> And in the db.properties-<whatever> files are lines like
> 
>> db1_driverClassName=com.mysql.jdbc.Driver
>> db1_url=jdbc:mysql://localhost/waitlist
> 
> and
> 
>> db1_driverClassName=org.postgresql.Driver
>> db1_url=jdbc:postgresql://localhost/waitlist
> 
> So it's generating the database specific sql for each one.  But for 
> PostgreSQL it's using nextval() with a sequence that hasn't been defined 
> or specified.
> 
> I'm guessing that I'm doing something wrong or leaving something out 
> since it's not creating the sequence.
> 
> Ok, wait; I commented out the writeSchemaToDatabase and looked at the 
> sql file it generated and the CREATE SEQUENCE is in the sql file.  So 
> why is it bombing when it tries to create the tables directly?
> 
> Thomas Dudziak wrote:
>> On 8/22/06, Rusty Wright <rusty@berkeley.edu> wrote:
>>
>>> How do I specify an autoincrement column such that the generated sql
>>> works with both mysql and postgresql?  In my database xml file I have
>>
>> I'm not quite sure what you mean ? The idea of DdlUtils is to specify
>> the database model in a database-independent XML format and then let
>> DdlUtils create the database for you or get database-specific SQL for
>> that XML database schema.
>> Especially for database creation, every database has different
>> statements and functionality, so it is quite likely that the SQL
>> generated for even the simplest database model will only work for the
>> database that you created the SQL for, and for no other database.
>>
>> Tom

Mime
View raw message