Fix/restore dynamodump from backup with gsis #94
Merged
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.
When trying to restore tables that were generated using the backup functionality of dynamodump, the Table and GSI schema from the describe_table boto3 API call is not fully compatible with the create_table operation of the API. This PR makes sure that the correct payloads are passed to the create_table API call when GSIs are present in the backup data. It also makes sure that when a backup Table is configured in on-demand mode (provisioned throughput set to 0 for all WCU and RCU) the default value of RESTORE_WRITE_CAPACITY is used instead (otherwise the parameter validation of the API will fail).
Without these changes, the output of the process will throw the following error when restoring a table with GSIs: