On Sep 20, 2011, at 11:53 AM, JPLaverdure wrote:
> This fails because of the "nullable=False" clause on the Sample foreign key
> as SQLA seems to try to update the sample to set box_id to null...
> console printout: (from the delete portion)
I'm not sure this has anything to do with versioning ? This is just that the
relationship "box" needs "cascade='all, delete-orphan'" on it so that Sample is
marked for deletion rather than set null when its parent Box is deleted.
>
> 2011-09-20 11:41:51,021 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
> 2011-09-20 11:41:51,022 INFO sqlalchemy.engine.base.Engine SELECT
> test.container.type AS test_container_type, test.box.id AS test_box_id,
> test.container.id AS test_container_id, test.container.token AS
> test_container_token, test.container.description AS
> test_container_description, test.container.version AS test_container_version,
> test.box.barcode AS test_box_barcode
> FROM test.container JOIN test.box ON test.container.id = test.box.id
> WHERE test.container.id = %(param_1)s
> 2011-09-20 11:41:51,023 INFO sqlalchemy.engine.base.Engine {'param_1': 1}
> 2011-09-20 11:41:51,025 INFO sqlalchemy.engine.base.Engine SELECT
> test.sample.id AS test_sample_id, test.sample.token AS test_sample_token,
> test.sample.box_id AS test_sample_box_id, test.sample.version AS
> test_sample_version
> FROM test.sample
> WHERE %(param_1)s = test.sample.box_id
> 2011-09-20 11:41:51,025 INFO sqlalchemy.engine.base.Engine {'param_1': 1}
> 2011-09-20 11:41:51,028 INFO sqlalchemy.engine.base.Engine INSERT INTO
> test.container_history (id, type, token, description, version) VALUES
> (%(id)s, %(type)s, %(token)s, %(description)s, %(version)s)
> 2011-09-20 11:41:51,028 INFO sqlalchemy.engine.base.Engine {'token': u'Big
> box', 'version': 1, 'type': u'box', 'id': 1, 'description': u'sample1'}
> 2011-09-20 11:41:51,029 INFO sqlalchemy.engine.base.Engine INSERT INTO
> test.box_history (id, barcode, version) VALUES (%(id)s, %(barcode)s,
> %(version)s)
> 2011-09-20 11:41:51,029 INFO sqlalchemy.engine.base.Engine {'barcode': u'',
> 'id': 1, 'version': 1}
> 2011-09-20 11:41:51,031 INFO sqlalchemy.engine.base.Engine UPDATE test.sample
> SET box_id=%(box_id)s WHERE test.sample.id = %(test_sample_id)s
> 2011-09-20 11:41:51,031 INFO sqlalchemy.engine.base.Engine {'box_id': None,
> 'test_sample_id': 1}
> 2011-09-20 11:41:51,032 INFO sqlalchemy.engine.base.Engine ROLLBACK
>
>
> So it does indeed seem to visit the sample, but I must be doing something
> wrong in my declaration because SQLA should be attempting to delete the
> sample not update it !
>
> Thanks
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/sqlalchemy/-/XAPy4uSlJAMJ.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/sqlalchemy?hl=en.
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.