codestates / codestates/colordiary

Error Handling: sequelize foreign key 연결시

Open
#64 0 comments 0 reactions 0 assignees View on GitHub
Error-Handling
Dominant language
JavaScript
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## 어떤 에러인가요?
- sequelize 공식문서의 migration 파트에 foreign key를 스켈레톤으로 연결하는 부분이다. 하지만 똑같이 붙여넣기 하니 에러가 발생했다.
## 에러 메시지
```jsx
$ npx sequelize-cli db:migrate

Sequelize CLI [Node: 16.13.0, CLI: 6.4.1, ORM: 6.13.0]

Loaded configuration file "config/config.js".
Using environment "development".
== 20220120064827-create-contents: migrating =======

ERROR: Failed to open the referenced table 'schema.userInfos'
```
## 에러 핸들링 방법
- 스키마 객체를 따로 정해주지 않아 스키마 부분을 삭제했다.

변경전
```jsx
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('Person', {
name: Sequelize.DataTypes.STRING,
isBetaMember: {
type: Sequelize.DataTypes.BOOLEAN,
defaultValue: false,
allowNull: false
},
userId: {
type: Sequelize.DataTypes.INTEGER,
references: {
model: {
tableName: 'users',
schema: 'schema' //이부분 모르겠음
},
key: 'id'
},
allowNull: false
},
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('Person');
}
}
```

변경 후
```jsx
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('Person', {
name: Sequelize.DataTypes.STRING,
isBetaMember: {
type: Sequelize.DataTypes.BOOLEAN,
defaultValue: false,
allowNull: false
},
userId: {
type: Sequelize.DataTypes.INTEGER,
references: {
model: {
tableName: 'users',
},
key: 'id'
},
allowNull: false
},
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('Person');
}
}
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.