일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JavaScript
- Nest.js
- mongoose
- cookie
- Python
- Queue
- Bull
- nestjs
- AWS
- flask
- GIT
- Sequelize
- Dinosaur
- game
- MySQL
- Express
- 자료구조
- OCR
- jest
- dfs
- TypeScript
- nodejs
- 공룡게임
- class
- MongoDB
- typeORM
- 게임
- react
- 정렬
- Today
- Total
포시코딩
[Sequelize] config 파일에서 dotenv를 읽지 못하는 문제 본문
문제 발견
/config/config.json에서 dotenv를 못쓰는 관계로
/config/config.js로 Javascript 파일을 만들어 dotenv를 적용해 사용하게 되었다.
근데 이전에 만들어놓은 model을 사용해 User.create()은 잘 되는데,
새로운 테이블을 만들기 위해 아래 명령어를 실행하면 env 파일 값을 읽지 못해 에러가 발생하고 있었다.
npx sequelize db:migrate
원인 파악
파일 위치 때문에 못읽어오는건가 싶어
기존에 npx sequelize 명령어를 실행하던 /sequelize 폴더가 아닌
.env 파일이 있는 곳에서 명령어를 실행해봐도 해결되지 않았다.
반대로 .env 파일을 복사해 차례차례 /sequelize 폴더에 넣어서도 실행해보고 /config 폴더에 넣어서도 실행해봤다.
그중, /sequelize 폴더에 있을 때 실행이 되는 것을 확인했다!!
문제 해결
결국 npx sequelize 할 때, 파일이 실행되는 /sequelize 폴더에 .env 파일이 없어서 그렇다는건데
그러자니 .env파일을 거기에 두거나, 따로 관리할 수는 없는 법
dotenv를 불러올 때 env파일 위치를 설정하는 법을 기억하고 있어서 일단 테스트 해봤다.
require('dotenv').config({path: '../../.env'});
잘 불러와진다..!
대신 Sequelize model을 쓸 때도 이 config.js를 사용하므로 그 부분에도 문제가 없는지 체크해봤다.
역시 DB와 잘 연동되고 있는것을 확인했다.
다행히 해결 방법을 찾는데 오래 걸린거 치고 손쉽게 해결을 할 수 있었는데
같이 고민해주신 분이 path 관련 힌트를 주셔서 그랬던 것 같다.
앞으로 비슷한 문제가 생기면 이번 케이스를 떠올리며
제일 먼저 실행 위치와 path에 대해 맞는지 체크를 해야겠다.
'Node.js' 카테고리의 다른 글
[Sequelize] 이미 생성한 테이블의 컬럼 속성 변경하기 (0) | 2022.12.22 |
---|---|
[Sequelize] FK(Foreign Key) 설정하기 (0) | 2022.12.21 |
[bcrypt] Error: Invalid salt. Salt must be in the form of: $Vers$log2(NumRounds)$saltvalue (0) | 2022.12.21 |
[Sequelize] config.json에 dotenv 환경변수 사용하기 - 작성중 (0) | 2022.12.20 |
[Sequelize] 세팅 및 사용방법 (0) | 2022.12.20 |