如何更改 Dynamo 表的分区键?

问题描述 投票:0回答:2
 this.table = new dynamodb.Table(this, `${stackName}-${id}`, {
      tableName: `${stackName}-${id}`,
      partitionKey: { name: 'message_id', type: dynamodb.AttributeType.STRING },
      sortKey: { name: 'entityId', type: dynamodb.AttributeType.STRING },
      billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
      tableClass: dynamodb.TableClass.STANDARD,
      stream: dynamodb.StreamViewType.NEW_IMAGE,
      timeToLiveAttribute: 'ttl',
      removalPolicy: RemovalPolicy.DESTROY,
    });

但是我需要将

partitionKey
message_id
更改为
messageId
。有没有办法以编程方式执行此操作?或者我是否必须在每个环境中手动删除该表?这尚未部署到生产环境,但已部署到开发环境。

amazon-dynamodb aws-cdk
2个回答
8
投票

您必须删除并重新创建表才能更改分区键和/或排序键的名称。

哎呀,你甚至无法更改 DDB 中记录的 PK 值。


0
投票

最好的解决方案是在 message_id 属性上创建全局二级索引 (GSI)。这允许您高效地通过message_id查询表。

© www.soinside.com 2019 - 2024. All rights reserved.