1

How do you delete a table in dynamoose?

For example is there a Model.deleteTable() function?

Harry
  • 2,965
  • 1
  • 13
  • 19

1 Answers1

0

I suggest creating a small module where you add additional configuration for your dynamoose import.

const dynamo = require('dynamoose')
const constants = require('../constants')

let oldModelFunction = dynamo.model

dynamo.model = function () {
    let compiledModel = oldModelFunction.apply(this, arguments)
    let name = compiledModel.$__.name
    compiledModel.modelName = name.toLowerCase()

    // Add deleteTable method
    compiledModel.deleteTable = () => {
        return new Promise((resolve, reject) => {
            dynamo.ddb().deleteTable({ TableName: compiledModel.$__.name }, (err, resp) => {
                if (err) reject(err)
                else resolve(resp)
            })
        })
    }

    return compiledModel
}

module.exports = dynamo

You can then create a model and use it like so:

const dynamo = require('./mydynamoose')

const Schema = dynamo.Schema

let UserSchema = new Schema({
    username: String,
    name: String,
    age: Number
})

const User = dynamo.model("User", UserSchema)

User.deleteTable().then(res => {
    // Check response
}).catch(err => {
    console.log(err)
})
Harry
  • 2,965
  • 1
  • 13
  • 19