Миграция с динамодб (динамо) на postgresql (сиквелиз) - установка hashKey - PullRequest
0 голосов
/ 03 апреля 2019

Я создал простую модель, используя Dynamoose, и теперь я хочу перенести ее в postgresql, используя sequelize.Я знаком с DynamodB и как в нем установлены хэш-ключи и ключи диапазона, но как мне добиться того же в postgresql с помощью sequelize?Ниже моя предыдущая модель, использующая Dynamoose, и мои попытки перенести ее с помощью sequelize, но я не уверен, что делать с ключами:

//dynamoose
var dynamoose = require("dynamoose");

var MessageRatingSchema = new dynamoose.Schema({
  id: {
    type: String,
    index: {
      global: true
    }
  },
  chatId: {
    type: String,
    hashKey: true
  },
  ratingType: {
    type: String,
    enum: ["NEGATIVE", "POSITIVE", "NEUTRAL", "MIXED"],
    rangeKey: true
  },
  rating: {
    type: Number
  }
});

module.exports = MessageRatingSchema;

Попытка перенести ее с помощью sequelize:

const Sequelize = require("sequelize");
const sequelize = new Sequelize('PGDATABASE', 'PGUSER', 'PGPASS', {
    host: 'localhost',
    dialect: 'postgres'
  });

  const MessageRating = sequelize.define('MessageRating', {
    id: {
      type: Sequelize.STRING,
      primaryKey: true
    },
    chatId: {
      type: Sequelize.STRING
      //hashkey
    },
    ratingType: {
        type: Sequelize.STRING,
        enum: ["NEGATIVE", "POSITIVE", "NEUTRAL", "MIXED"]
        //sortkey
    },
    rating:{
        type: Sequelize.NUMBER
    }

  }, {
    // options
  });

  module.exports = MessageRating;

Пожалуйста, дайте мне знать, если это правильный путь и как я могу установить соответствующие hashKeys и rangeKeys, используя sequelize.Спасибо.

1 Ответ

0 голосов
/ 21 мая 2019

Я делаю нечто подобное с TypeORM, но мне кажется, что для Sequelize Associations вам просто нужно установить внешний ключ, например:

 chatId: {
    type: Sequelize.STRING,
    references: {
      model: Chat,
      key: 'id'
    }
  }
...