尝试通过使用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数据库一样),您无需提前指定每个记录属性字段。您只需要提前指定哈希和范围字段即可。

10-08 00:33