使用Amplify更改DynamoDB的主键
解决方法:使用@primaryKey。
修改位于Amplify应用程序文件夹的backend\api\APP_NAME下的schema.graphql。
# 変更前
type MetcomDevices @model @auth(rules: [{allow: public}]) {
id: ID!
DeviceID: String!
Name: String
AppID: String
Latitude: Float
Longitude: Float
Accuracy: Float
Calibration: Boolean
}
# 変更後
type MetcomDevices @model @auth(rules: [{allow: public}]) {
DeviceID: String! @primaryKey
Name: String
AppID: String
Latitude: Float
Longitude: Float
Accuracy: Float
Calibration: Boolean
}
只需给希望设定为主键的字段添加@primaryKey注解。在Amplify GraphQL Transformer v2之后,不再能使用@key指定方法。
在修改模式后,我想要进行推送,但是如果更改主键,据说会清除DynamoDB上相关表的信息,因此我需要明确指定,然后进行推送。只需添加”amplify push –allow-destructive-graphql-schema-updates”选项即可。