尝试通过使用flask-dynamo得到错误“”,在Dynamo数据库中创建具有三个字段的表
botocore.exceptions.ClientError
botocore.exceptions.ClientError:调用CreateTable操作时发生错误(ValidationException):关键架构中的属性数量必须与属性定义中定义的属性数量匹配
这是配置创建表dynamo db
@app.route('/create_table')
def create_table():
app.config['DYNAMO_TABLES'] = [
{
'TableName': "user_detail",
'KeySchema': [
{'AttributeName': "timestamp", 'KeyType': "HASH"},
{'AttributeName': "question", 'KeyType': "RANGE"},
],
'AttributeDefinitions': [
{'AttributeName': "timestamp", 'AttributeType': "S"},
{'AttributeName': "question", 'AttributeType': "N"},
{'AttributeName': "user", 'AttributeType': "N"},
],
'ProvisionedThroughput': {
'ReadCapacityUnits': 40,
'WriteCapacityUnits': 40
}
}]
dynamo = Dynamo(app)
with app.app_context():
dynamo.create_all()
return "Table created"
提前致谢
最佳答案
您需要删除以下行:
{'AttributeName': "user", 'AttributeType': "N"},
使用DynamoDB(与大多数NoSQL数据库一样),您无需提前指定每个记录属性字段。您只需要提前指定哈希和范围字段即可。