You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cayenne.apache.org by raggeler <r....@gmx.net> on 2006/07/31 00:04:12 UTC
Mysql InnoDB and ForeignKeys
Hi all
I just created a database schema with DBDesigner, created a database
with it, used InnoDB and Foreigkeys there. I re engineered the database
in the modeler, and created an SQL Create Script again. I checked FK
support, used Automatic is adapter, but can't find any "FOREIGNKEY"
option in the create script?...
Are there some more options I must turn on or off?
Regards
Rafael
Re: Mysql InnoDB and ForeignKeys
Posted by Andrus Adamchik <an...@objectstyle.org>.
Borut is correct - the current default policy was implemented with
MyISAM tables in mind (that do not support FK constraints). We should
probably change the default to allow constraints, as the user always
has a choice to disable them in the generator.
For now you may use any of the MySQL tools to create constraints by
hand. I use phpMyAdmin.
Andrus
On Jul 31, 2006, at 3:22 AM, Borut Bolčina wrote:
> If you use MySQL...
>
> Modeler does not support MySQL FK statements (ADD FOREIGN KEY
> (foo_fk) REFERENCES foo (oid))
> You have to generate database tables through API with
> generator.runGenerator(dataSource)
>
> You have to to use
> MySQLAdapter mysqlDbAdapter = new MySQLAdapter(); and
> not AutoAdapter
> then
> mysqlDbAdapter.setSupportsFkConstraints(true);
> generator = new DbGenerator(mysqlDbAdapter, dataMap);
>
> generator.setShouldCreatePKSupport(true);
> generator.setShouldCreateFKConstraints(true);
> generator.setShouldDropTables(false);
> then
>
> try {
> generator.runGenerator(dataSource);
> } catch (Exception e) {
> logger.error("Error running database generator for " +
> dataMap.getName(), e);
> }
>
> I hope this will get you started,
> Borut
>
>
> On 31.7.2006 0:04, raggeler wrote:
>> Hi all
>>
>> I just created a database schema with DBDesigner, created a
>> database with it, used InnoDB and Foreigkeys there. I re
>> engineered the database in the modeler, and created an SQL Create
>> Script again. I checked FK support, used Automatic is adapter, but
>> can't find any "FOREIGNKEY" option in the create script?...
>> Are there some more options I must turn on or off?
>>
>> Regards
>>
>> Rafael
>
> --
> <blog-logo.gif>
>
> --
> Naključna izjava tedna iz tednika Mladina:
Re: Mysql InnoDB and ForeignKeys
Posted by Borut Bolčina <bo...@najdi.si>.
If you use MySQL...
Modeler does not support MySQL FK statements (ADD FOREIGN KEY (foo_fk)
REFERENCES foo (oid))
You have to generate database tables through API with
generator.runGenerator(dataSource)
You have to to use
MySQLAdapter mysqlDbAdapter = new MySQLAdapter(); and not
AutoAdapter
then
mysqlDbAdapter.setSupportsFkConstraints(true);
generator = new DbGenerator(mysqlDbAdapter, dataMap);
generator.setShouldCreatePKSupport(true);
generator.setShouldCreateFKConstraints(true);
generator.setShouldDropTables(false);
then
try {
generator.runGenerator(dataSource);
} catch (Exception e) {
logger.error("Error running database generator for " +
dataMap.getName(), e);
}
I hope this will get you started,
Borut
On 31.7.2006 0:04, raggeler wrote:
> Hi all
>
> I just created a database schema with DBDesigner, created a database
> with it, used InnoDB and Foreigkeys there. I re engineered the
> database in the modeler, and created an SQL Create Script again. I
> checked FK support, used Automatic is adapter, but can't find any
> "FOREIGNKEY" option in the create script?...
> Are there some more options I must turn on or off?
>
> Regards
>
> Rafael
--
bLOG <http://www.delo.si/blog/borutb/>
--
Naključna *izjava tedna* iz tednika Mladina: