Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug : Sequelize **Model.create({}) 시에 **Id Primary Key 가 오작동 #26

Closed
unchaptered opened this issue Aug 15, 2022 · 0 comments
Closed
Assignees
Labels
bug Something isn't working

Comments

@unchaptered
Copy link
Member

unchaptered commented Aug 15, 2022

해당 버그는 PR : Seqeulize 작동 오류 수정 에서 확인되었고 PR : 회원가입 로직 구현 및 sequelize 설정을 API 명세에 맞게 수정 설명서 포함 에서 수정 되었습니다. 2022-08-15

새벽 시간대에 도움을 주신, 항해99 8기 F반 다른 조인 @codeing999@taesikyoon 께 감사드립니다.

Behavior

  1. Expected behavior
  2. Actual behavior
  3. Describe the bug

1. Expected behaviors

저희가 현재 모델명Id 로 이루어져 있는 값을 사용 중입니다.

./src/sequelize/migration 파일에는 다음과 같이 써져있었고 mysql 테이블에 해당 내용이 반영 되어 있었습니다. 따라서 생성하면 userId 를 포함한 생성된 내용 을 줄 것이라고 예상했습니다.

userId: {
   type: DataType.INTEGER,
   primaryKey: true,
   autoIncrement: true
}

2. Actual behavior

DB 에는 userId 가 13 과 같은 숫자로 들어갔습니다.
하지만 Express 안에서는 userId 가 null 로 식별 되었습니다.

const user = await User.create({});

// user 안에 있는 userId 는 null 로 나옴...

3. Describe the bug

이 부분은 sequelize 와 mirgration 에 대한 이해도가 낮았던 것 같습니다.

src/sequelize/migrations 은 기본적으로 table 을 생성하고 삭제하는 등의 일을 처리해주고 있습니다.

하지만 express 에서 사용되는 옵션들은 모두 src/sequelize/models 안에서 작동하고 있었습니다.

이 부분이 명확하게 구분 되어 있지 않고 섞여 있어서 에러를 감지하는 순간순간 수정해나가야 할 것 같습니다.
최선의 방법은 migration 파일(실제 DB) 옵션을 models에 전부 반영하는 것이 아닐까 싶습니다.

따라서, 단순히 타입만 적혀 있는 src/sequelize/models/user.js 의 init 부분을... 다음과 같이 변경하여 해결하였습니다.

// src/sequelize/models/user.js
userId: {
    primaryKey: true,
    autoIncrement: true,
    type: DataTypes.INTEGER,
},

Details

1. Environment

- Node : v16.15.1
- npm : v8.11.0
- OS : Windows 10

2. Screenshots

If you have some iamges of error, please submit it.

@unchaptered unchaptered added the bug Something isn't working label Aug 15, 2022
@unchaptered unchaptered self-assigned this Aug 15, 2022
@unchaptered unchaptered changed the title Bug : Sequelize **Model.create({}) 시에 **Id_(Primary Key)_ 가 오작동 Bug : Sequelize \*\*Model.create({}) 시에 \*\*Id_(Primary Key)_ 가 오작동 Aug 15, 2022
@unchaptered unchaptered changed the title Bug : Sequelize \*\*Model.create({}) 시에 \*\*Id_(Primary Key)_ 가 오작동 Bug : Sequelize **Model.create({}) 시에 **Id Primary Key 가 오작동 Aug 15, 2022
@unchaptered unchaptered added enhancement New feature or request and removed enhancement New feature or request labels Aug 15, 2022
@unchaptered unchaptered pinned this issue Aug 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant