Re: Models confused?
Re: Models confused?
- Subject: Re: Models confused?
- From: Travis Britt <email@hidden>
- Date: Wed, 22 Dec 2010 13:30:32 -0500
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@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden