#node.js #postgresql #amazon-dynamodb #sequelize.js #dynamoose
#node.js #postgresql #amazon-dynamodb #sequelize.js #dynamoose
Вопрос:
Я создал простую модель, используя 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:
Я нахожусь в процессе выполнения чего-то подобного с TypeORM, но мне кажется, что для продолжения ассоциаций вам просто нужно установить внешний ключ, вот так:
chatId: {
type: Sequelize.STRING,
references: {
model: Chat,
key: 'id'
}
}