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