linz / qgis-plugin-repository

API for storing and serving QGIS plugins.
https://plugins.qgis.linz.govt.nz/v1/docs
Other
4 stars 1 forks source link

Deployment failing with dynamodb table already exists #153

Open billgeo opened 2 years ago

billgeo commented 2 years ago

See deployment log here https://github.com/linz/qgis-plugin-repository/runs/5031052799?check_suite_focus=true#step:8:27

Serverless: Operation failed!
Serverless: View the full error output: https://ap-southeast-2.console.aws.amazon.com/cloudformation/home?region=ap-southeast-2#/stack/detail?stackId=arn%3Aaws%3Acloudformation%3Aap-southeast-2%3A***%3Astack%2Fqgis-plugin-repo-dev%2F77f7c2b0-127d-11eb-892a-02f23dfeffce

  Serverless Error ---------------------------------------

  An error occurred: PluginsDynamoDBTable - qgis-plugin-repo-*** already exists.

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     Operating System:          linux
     Node Version:              12.22.9
     Framework Version:         1.67.1
     Plugin Version:            3.6.5
     SDK Version:               2.3.0
     Components Version:        2.28.0

Error: Process completed with exit code 1.

Cloud Formation:

    PluginsDynamoDBTable:
      Type: 'AWS::DynamoDB::Table'
      DeletionPolicy: Retain
      Properties:
        TableName: ${self:provider.environment.PLUGINS_TABLE_NAME}
        AttributeDefinitions:
          - AttributeName: id
            AttributeType: S
          - AttributeName: item_version
            AttributeType: S
        KeySchema:
          - AttributeName: id
            KeyType: HASH
          - AttributeName: item_version
            KeyType: RANGE
        BillingMode: PAY_PER_REQUEST

According to the AWS documentation if a table name is specified in Cloudformation then it can't be updated/replaced without giving it a new name. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html

SPlanzer commented 2 years ago

Started to look into this but quickly blocked by #157 that makes dev deployment difficult