Может ли кто-нибудь сообщить мне, может ли UpdateTableSpec обновлять атрибуты KeySchema и есть ли способ обновить/изменить таблицу с атрибутами non-keyschema? Мой сценарий: я создал таблицу с составным ключом, состоящим из первичного (атрибут #id) и ключа диапазона (атрибут #Name). Теперь я хочу добавить третий атрибут «Пол», который не является частью keyschema. Является ли это возможным ?UpdateTableSpec на таблице dynamoDB не работает
Я обновляю свою DynamoDB таблицу, используя следующий код, но он не добавляет атрибут Пола, хотя она успешно обновляет инициализированный атрибут:
static void updateTable() {
System.out.println("Updating the table with new attributes ...");
Table table = dynamoDB.getTable(tableName);
UpdateTableSpec updateTableSpec = new UpdateTableSpec();
List<AttributeDefinition> attributeDefinitionList = updateTableSpec.getAttributeDefinitions();
if (null == attributeDefinitionList) {
attributeDefinitionList = new ArrayList<AttributeDefinition>();
}
attributeDefinitionList.add(new AttributeDefinition()
.withAttributeName("Gender")
.withAttributeType("S"));
updateTableSpec.withAttributeDefinitions(attributeDefinitionList)
.withProvisionedThroughput(new ProvisionedThroughput()
.withReadCapacityUnits(6L)
.withWriteCapacityUnits(7L));;
table.updateTable(updateTableSpec);
try {
table.waitForActive();
System.out.println("Table updated succesfully");
} catch (final Exception ex) {
System.out.println("Exception occurred while updating the table");
}
}