codestates / codestates/colordiary
Error Handling: sequelize foreign key 연결시
- 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.