Hi guys, The history system in SQLAlchemy seems to think that an object with the same column values is different than what's in the database. Only it's not.
Here's a test case I wrote really quick to demonstrate the issue - https://paste.pound-python.org/show/5FtE85ve08hVoByT6WNj/ 1. Given a single JSON string full of data 2. Deserialize to a new instance of a model called firstRow (using marshmallow-sqlalchemy) 3. Observe that the row shows a change for all columns and child objects 4. Add / Commit the row to the database 5. Deserialize to a new instance of a model called secondRow (again, using marshmallow-sqlalchemy) 6. marshmallow-sqlalchemy will return the persistent row from the database and apply the changes over the top (there are no changes in this case) 7. Checking the Session.dirty at this point shows a changed state (expected - we used the same data) 8. Checking the hasChanged function I've created shows the websites column has changed 9. Checking the contents of websites shows the same data when done for firstRow (pre-commit) and secondRow 10. get_history for the websites column shows it was deleted and re-added So, what is strange is that it only happens for the website relationship (and one other column from the parent table in my actual test environment.) If it was marshmallow-sqlalchemy, wouldn't it do this for all the relationships? Also, the values are the same - shouldn't SQLAlchemy check for this? Anyway - does anyone have any thoughts on this? -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.