Serialize the context of a WorkChain before persisting #1354
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1353 and fixes #1291 by extension
This was the underlying issue that was causing the
aiida-quantumespresso
workflows to fail withSqlAlchemy
ondevelop
. The fact that it worked on Django was a lucky coincidence.The user is free to populate the context with
Node
instances, whichmeans that if the
WorkChain
needs to be persisted that the nodesneed to be serialized. Since the nodes are not necessarily stored
upon calling
save_instance_state
, we also store them if they werenot yet stored. We also use this opportunity to replace the ad hoc
serialization in the pickle persister and use the new more complete
serializer and deserializer.