2
안녕하세요, 나는 많은 관계에 대한 조인 테이블을 만들려고합니다. 나는 다음과 같은 오류가 점점 오전 :조인 테이블에서 데이터베이스 오류를 sequelize
"name": "SequelizeDatabaseError",
"parent": {
"name": "error",
"length": 110,
"severity": "ERROR",
"code": "42P01",
"position": "13",
"file": "parse_relation.c",
"line": "1160",
"routine": "parserOpenTable",
"sql": "INSERT INTO \"user_routes\" (\"id\",\"userId\",\"routeId\",\"createdAt\",\"updatedAt\") VALUES (DEFAULT,'1','1','2017-11-15 03:57:21.791 +00:00','2017-11-15 03:57:21.791 +00:00') RETURNING *;"
},
의 관계는 많이 있었으나 결국 기본이없는 사용자와 경로에 대한
module.exports = (sequelize, DataTypes) => {
const Route = sequelize.define("Route", {
open: {
type: DataTypes.BOOLEAN,
allowNull: true
}
});
Route.associate = models => {
Route.belongsToMany(models.User, {
through: "userRoutes",
as: "users"
});
};
return Route;
};
module.exports = (sequelize, DataTypes) => {
var User = sequelize.define("User", {
email: DataTypes.TEXT,
password: DataTypes.TEXT
});
User.associate = models => {
User.belongsToMany(models.Route, {
through: "userRoutes",
as: "routes"
});
};
return User;
};
User
사이
Route
마이그레이션 파일입니다. 테이블을 조인 :
"use strict";
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable("user_route", {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
},
userId: {
type: Sequelize.INTEGER,
onDelete: "CASCADE",
references: {
model: "Users",
key: "id"
}
},
routeId: {
type: Sequelize.INTEGER,
onDelete: "CASCADE",
references: {
model: "Routes",
key: "id"
}
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable("user_route");
}
};
내 컨트롤러와 경로는 다음과 같습니다 : 나는 그 길에 게시하려고 할 때
create(req, res) {
return UserRoutes.create({
userId: req.body.userId,
routeId: req.body.routeId
})
.then(userRoute => res.status(201).send(userRoute))
.catch(err => res.status(400).send(err));
},
app.post("/api/userRoutes", userRoutesController.create);
그래서, 나는 게시물의 상단에 오류 메시지가 표시됩니다. 필요한 경우 세부 정보를 제공 할 수 있습니다.
나는 문제를 파악한 것으로 생각합니다. 문제는 sequelize 및 postgres의 명명 규칙입니다. 뭔가 옮겨지고 있지 않습니다. 그것은 많은 관계와 관련이 없습니다. 문제가 해결되면 업데이트하겠습니다. – Leogoesger