You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-user@db.apache.org by Jeroen Peschier <j....@uzorg.nl> on 2003/08/06 16:04:59 UTC

Torque does not support InnoDB tables yet?

Hi all,

My Torque project uses a MySQL 4.1 database. I have many onUpdate and 
onDelete restrictions in the project's schema.xml. When the SQL code 
gets generated it outputs the foreign keys fine in the SQL, but no 
ONUPDATE or ONDELETE constraints to be found... Is this a known issue?

There's also no table type in the CREATE TABLE statements. I think MySQL 
defaults to using MyISAM while I want InnoDB. How do I specify a table 
type? Come to think of it, why even specify a table type if foreign keys 
plus constraints are defined and the database is MySQL. InnoDB should be 
implied, no?

Another minor thing I cannot specify in the schema is the character set 
and collation to be used on a table.

As is it now I have a post-create SQL-script that does a bunch of ALTER 
TABLE statement and sets the required character set and collation. I 
really don't want to add the referential constraints  manually. It kinda 
defeats the purpose of having it generated :)

Open for suggestions...

Jeroen



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Re: Torque does not support InnoDB tables yet?

Posted by Luigi <na...@iol.it>.
Henning P. Schmiedehausen wrote:
> Thomas Schindl <to...@profile.co.at> writes:
> 
> Add a new "mysql-inno" or "mysql-4" database type to the
> generator. Should be pretty simple, basically you copy the mysql
> templates and change a few names and parameters.
> 
> Patches welcome. ;-)
> 
> 	Regards
> 		Henning
> 

Hallo,

The solution I am using is the following one (it works, apparently, but 
I am no torque guru):

I have modified the templates/sql/base/mysql/foreignkey.vm file from:

-----------
#foreach ($fk in $table.ForeignKeys)
     FOREIGN KEY ($fk.LocalColumnNames) REFERENCES $fk.ForeignTableName 
($fk.ForeignColumnNames),
#end
-----------

to:

-----------
#foreach ($fk in $table.ForeignKeys)
     FOREIGN KEY ($fk.LocalColumnNames) REFERENCES $fk.ForeignTableName 
($fk.ForeignColumnNames)
#if ($fk.hasOnUpdate())
     ON UPDATE $fk.OnUpdate
#end
#if ($fk.hasOnDelete())
     ON DELETE $fk.OnDelete
#end
,
#end
-----------

to allow for the generation of foreign keys costraints
This should be compatible with both innodb and myisam tables and with 
4.0.x and 3.23.5x versions of mysql (the unsupported options are simply 
ignored by the db versions which don't support them).

Then to use Innodb tables, the line regarding the innodb table type must 
be uncommented (and myisam commented) in the file: 
templates/sql/base/mysql/db.props

Regards
Luigi


> 
> 	
> 
> 
>>On Wed, 2003-08-06 at 16:04, Jeroen Peschier wrote:
>>
>>>Hi all,
>>>
>>>My Torque project uses a MySQL 4.1 database. I have many onUpdate and 
>>>onDelete restrictions in the project's schema.xml. When the SQL code 
>>>gets generated it outputs the foreign keys fine in the SQL, but no 
>>>ONUPDATE or ONDELETE constraints to be found... Is this a known issue?
>>>
>>>There's also no table type in the CREATE TABLE statements. I think MySQL 
>>>defaults to using MyISAM while I want InnoDB. How do I specify a table 
>>>type? Come to think of it, why even specify a table type if foreign keys 
>>>plus constraints are defined and the database is MySQL. InnoDB should be 
>>>implied, no?
> 
> 
>>InnoDB => You have to "comment in" that in db.props-file of mysql.
> 
> 
>>>Another minor thing I cannot specify in the schema is the character set 
>>>and collation to be used on a table.
>>>
>>>As is it now I have a post-create SQL-script that does a bunch of ALTER 
>>>TABLE statement and sets the required character set and collation. I 
>>>really don't want to add the referential constraints  manually. It kinda 
>>>defeats the purpose of having it generated :)
>>>
>>>Open for suggestions...
>>>
>>>Jeroen
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
>>>For additional commands, e-mail: torque-user-help@db.apache.org
>>>
> 
> 
> 
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
>>For additional commands, e-mail: torque-user-help@db.apache.org
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Re: Torque does not support InnoDB tables yet?

Posted by "Henning P. Schmiedehausen" <hp...@intermeta.de>.
Thomas Schindl <to...@profile.co.at> writes:

Add a new "mysql-inno" or "mysql-4" database type to the
generator. Should be pretty simple, basically you copy the mysql
templates and change a few names and parameters.

Patches welcome. ;-)

	Regards
		Henning


	

>On Wed, 2003-08-06 at 16:04, Jeroen Peschier wrote:
>> Hi all,
>> 
>> My Torque project uses a MySQL 4.1 database. I have many onUpdate and 
>> onDelete restrictions in the project's schema.xml. When the SQL code 
>> gets generated it outputs the foreign keys fine in the SQL, but no 
>> ONUPDATE or ONDELETE constraints to be found... Is this a known issue?
>> 
>> There's also no table type in the CREATE TABLE statements. I think MySQL 
>> defaults to using MyISAM while I want InnoDB. How do I specify a table 
>> type? Come to think of it, why even specify a table type if foreign keys 
>> plus constraints are defined and the database is MySQL. InnoDB should be 
>> implied, no?

>InnoDB => You have to "comment in" that in db.props-file of mysql.

>> Another minor thing I cannot specify in the schema is the character set 
>> and collation to be used on a table.
>> 
>> As is it now I have a post-create SQL-script that does a bunch of ALTER 
>> TABLE statement and sets the required character set and collation. I 
>> really don't want to add the referential constraints  manually. It kinda 
>> defeats the purpose of having it generated :)
>> 
>> Open for suggestions...
>> 
>> Jeroen
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: torque-user-help@db.apache.org
>> 


>---------------------------------------------------------------------
>To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
>For additional commands, e-mail: torque-user-help@db.apache.org

-- 
Dipl.-Inf. (Univ.) Henning P. Schmiedehausen          INTERMETA GmbH
hps@intermeta.de        +49 9131 50 654 0   http://www.intermeta.de/

Java, perl, Solaris, Linux, xSP Consulting, Web Services 
freelance consultant -- Jakarta Turbine Development  -- hero for hire

"You are being far too rational for this discussion."  
       --- Scott Robert Ladd in <3F...@coyotegulch.com>

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Re: Torque does not support InnoDB tables yet?

Posted by Thomas Schindl <to...@profile.co.at>.
On Wed, 2003-08-06 at 16:04, Jeroen Peschier wrote:
> Hi all,
> 
> My Torque project uses a MySQL 4.1 database. I have many onUpdate and 
> onDelete restrictions in the project's schema.xml. When the SQL code 
> gets generated it outputs the foreign keys fine in the SQL, but no 
> ONUPDATE or ONDELETE constraints to be found... Is this a known issue?
> 
> There's also no table type in the CREATE TABLE statements. I think MySQL 
> defaults to using MyISAM while I want InnoDB. How do I specify a table 
> type? Come to think of it, why even specify a table type if foreign keys 
> plus constraints are defined and the database is MySQL. InnoDB should be 
> implied, no?

InnoDB => You have to "comment in" that in db.props-file of mysql.

> Another minor thing I cannot specify in the schema is the character set 
> and collation to be used on a table.
> 
> As is it now I have a post-create SQL-script that does a bunch of ALTER 
> TABLE statement and sets the required character set and collation. I 
> really don't want to add the referential constraints  manually. It kinda 
> defeats the purpose of having it generated :)
> 
> Open for suggestions...
> 
> Jeroen
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
> For additional commands, e-mail: torque-user-help@db.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org