Я учусь использовать Sequelize для использования с базой данных PostgreSQL. Все следующее происходит на dev. среда. Это произошло, когда я вручную пытался вставить данные в мои таблицы, чтобы проверить правильность настройки через Sequelize, проверить, не прошли ли модульные тесты и т. Д.
Я создал две таблицы с моделями Sequelize: User и Publication. Обе эти таблицы генерируют UUIDv4. Я связал пользователя hasMany
Публикации и пользователя публикации belongsTo
(вы можете ссылаться на дополнительную информацию).
В моей оболочке psql
я вставил следующую запись в свою таблицу User (остальные данные вырезаны для краткости):
| id | firstName | lastName | ..|
|----------------------------------------|------------|-----------|---|
| 8c878e6f-ee13-4a37-a208-7510c2638944 | Aiz | .... |...|
Теперь я пытаюсь вставить запись в мою таблицу публикаций, ссылаясь на моего недавно созданного пользователя выше. Вот что я ввел в оболочку:
INSERT INTO "Publications"("title", "fileLocation", ..., "userId")VALUES('How to Pasta', 'www.pasta.com', ..., 8c878e6f-ee13-4a37-a208-7510c2638944);
Сбой, и я получаю следующую ошибку:
ERROR: syntax error at or near "c878e6f"
LINE 1: ...8c878e6f-ee...
(указывает на второй символ на терминале в справочнике LINE 1 - 'c').
Что здесь не так? Должны ли мы вводить UUID по-другому, если мы хотим сделать это вручную в psql? Вставляем ли мы указанный UUID как строку? Есть ли правильный путь, который я упускаю из моих собственных исследований?
Дополнительная информация, если это поможет:
Из моих моделей:
Publication.associate = function(models) {
// associations can be defined here
Publication.belongsTo(models.User, {
foreignKey: "userId"
});
};
и
User.associate = function(models) {
// associations can be defined here
User.hasMany(models.Publication, {
foreignKey: "userId",
as: "publications"
});
};
Вот как я определил userId
в публикации:
userId: {
type: DataTypes.UUID,
references: {
model: "User",
key: "id",
as: "userId"
}
}
Если оно чего-то стоит, мой (primaryKey) id
на обеих моделях равен type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4
(я не знаю, является ли это проблемой).