Впервые задал вопрос о переполнении стека, поэтому, надеюсь, я правильно его сформулирую: я пытаюсь создать простое приложение для блога как домашнее задание при использовании Sequelize для управления базой данных. Тем не менее, у меня возникла проблема при попытке создать некоторые тестовые данные, когда я пытаюсь создать элементы, связанные с моей моделью. Вот мой код, он должен быть того же синтаксиса, что и в документации (http://docs.sequelizejs.com/en/v3/docs/associations/#creating-elements-of-a-hasmany-or-belongstomany-association).Создание элементов ассоциации hasMany
Текущее поведение: оба пользователя созданы со всеми атрибутами, сообщения не создаются вообще и никаких ошибок не выдаются.
masterdb.sync({force:true}).then(x => {
return Promise.all([
User.create({
username:'Timothy',
password:'plain-text',
email:'[email protected]',
Posts: [
{ body: 'Hello everyone, my name is Timothy.' },
{ body: 'Today was a good day.'}
]
}, {
include: [ Post ]
}),
User.create({
username:'Jack Sparrow',
password:'plain-text',
email:'[email protected]'
}),
])
}).catch(x => console.log(x))
А вот мои модели и отношения декларации:
const Sequelize = require('sequelize')
const masterdb = new Sequelize('blogapplication', process.env.POSTGRES_USER, process.env.POSTGRES_PASSWORD, {
dialect: 'postgres',
})
const User = masterdb.define('user', {
username: {
type: Sequelize.STRING,
unique: true,
allowNull: false
},
password: {
type: Sequelize.STRING,
allowNull: false
},
email: {
type: Sequelize.STRING,
unique: true,
allowNull: false
}
}, {
paranoid: true
})
const Post = masterdb.define('post', {
body: {
type: Sequelize.STRING(9001),
allowNull: false,
unique:true,
}
}, {
paranoid: true
})
User.hasMany(Post)
У вас нет внешних ключей определяется – yBrodsky
Кроме того, почему это тело уникально? Если это сообщение, вы не сможете иметь два с тем же текстом. – yBrodsky
@yBrodsky. Не являются ли внешние ключи автоматически заданы правильно, когда я объявляю отношения? В Postgres таблица posts теперь привязана к таблице пользователей через столбец userID. Тело, имеющее уникальный атрибут, не должно иметь значения для этой проблемы, но мое намерение состояло в том, чтобы помешать людям (или ботам) со спам-постов. –