Things to check on the DB side:
1. The FK and the ID it's pointing to are the same field types.
2. (Most likely) the table must be InnoDB, not MyISAM. MyISAM does not support
FK constraints.
Which brings up the next issue, if you are using FK constraints be aware that
InnoDB does not support deferred constraints so you will need to use something
like Chuck's dependency ordering delegate.
Assuming you are using 5.4 Wonder and the MySQLPlugIn I'm curious how that
works out for you (I'm no longer using MySQL and haven't had the time to test
that out yet.)
tb
On Dec 22, 2010, at 12:53 PM, Jesse Tayler wrote:
> I've had ERAttachment tests working once or twice, now I think maybe I've
> gotten models confused somewhere perhaps.
>
> I have a poster relationship from user which eogen's a line to add a foreign
> key, which I think should be there, but this step fails - in past experience,
> this has been mismatched id key types, but I don't see that here.
>
> Everything is setup with "id" as a prototype for mysql.
>
> I see some similar troubles with Postgres on the list or google, but I'm on
> Mysql and just starting a new dev. environment etc.
>
> This foreign key should be there right? Any ideas why it might be failing?
>
>
>
>
>
>
> userTable.addForeignKey("posterId", "ERAttachment", "id");
>
> Can't create table 'mtly.#sql-731_26c3' (errno: 150)
>
> Failed to execute 'ALTER TABLE USER ADD CONSTRAINT USER_posterId_posterId_FK
> FOREIGN KEY (posterId) REFERENCES ERAttachment (id)'.
>
>
>
>
> If I ignore, I'll get a runtime:
>
>
>
>
> com.webobjects.eoaccess.EOGeneralAdaptorException: EvaluateExpression failed:
> : Next exception:SQL State:23000 -- error code: 1452 -- msg: Cannot add or
> update a child row: a foreign key constraint fails (`mtly`.`ERAttachment`,
> CONSTRAINT `ERAttachment_attachmentDataID_attachmentDataID_FK` FOREIGN KEY
> (`attachmentDataID`) REFERENCES `ERAttachmentData` (`id`))
>
> Reason:
> EvaluateExpression failed:
> <com.webobjects.jdbcadaptor._MySQLPlugIn$MySQLExpression: "INSERT INTO
> ERAttachment(size, width, height, attachmentDataID, available, thumbnail,
> creationDate, ownerID, configurationName, smallData, mimeType,
> originalFileName, webPath, id, proxied, storageType) VALUES (?, NULL, NULL,
> ?, ?, NULL, ?, NULL, NULL, NULL, ?, ?, ?, ?, ?, ?)" withBindings:
> 1:73207(size), 2:2(attachmentDataID), 3:true(available), 4:2010-12-21
> 22:23:33(creationDate), 5:"image/jpeg"(mimeType),
> 6:"jesseheadshot.jpg"(originalFileName), 7:"/2.jpg"(webPath), 8:2(id),
> 9:true(proxied), 10:"db"(storageType)>: Next exception:SQL State:23000 --
> error code: 1452 -- msg: Cannot add or update a child row: a foreign key
> constraint fails (`mtly`.`ERAttachment`, CONSTRAINT
> `ERAttachment_attachmentDataID_attachmentDataID_FK` FOREIGN KEY
> (`attachmentDataID`) REFERENCES `ERAttachmentData` (`id`))
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list ([email protected])
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/tbritt%40phigment.org
>
> This email sent to [email protected]
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]