- [Sequelize] 새로운 테이블 추가시 발생한 문제 해결2024년 09월 09일 16시 58분 59초에 업로드 된 글입니다.이 글은 2024년 11월 05일 03시 45분 26초에 마지막으로 수정되었습니다.작성자: DandyNow728x90반응형
1. 새로운 테이블 추가 후 발생한 에러 해결
😉 새로운 칼럼 또는 테이블 추가 방법 : https://postforty.tistory.com/473
parent: Error: Unknown column 'createdAt' in 'field list'
새로운 테이블을 추가하기 위해 모델 파일을 추가하면 init-models.js에 테이블에 대한 관계 설정을 해줘야 하는데 직접 진행하면 고생스럽다. 그래서 sequelize-auto로 DB 스키마의 모든 내용을 모델 파일로 가져오는 방법을 사용하면 편리하다. 이때 DB를 수정하지 않기 때문에 데이터 손실을 걱정하지 않아도 된다.
npm install -g sequelize-auto # 설치하기 # 사용 예제 sequelize-auto -o "./models" -d your_database_name -h your_database_host -u your_username -p your_port -x your_password -e mysql --additional ./sequelize-auto.json sequelize-auto를 사용할 때 --additional 옵션에 sequelize-auto.json을 연결했다. 모델을 자동 생성할 때 해당 속성을 일괄 적용할 수 있게 해 준다. createdAt 컬럼을 알 수 없다는 에러를 해결하기 위해 프로젝트의 루트 경로에 sequelize-auto.json를 생성하고 아래와 같이 작성하였다.
{ "timestamps": false } 이 프로젝트의 경우 createdAt이라는 칼럼 대신 created_at라는 칼럼을 사용하고 있었으므로 timestamps를 true로 관리할 필요가 없었던 경우다.
2. mysql2 에러
Error: Please install mysql2 package manually at ConnectionManager._loadDialectModule
분명히 mysql2 의존성이 프로젝트의 package.json에 추가되어 있는데 위와 같은 에러가 발생했다. 기존 설치된 의존성을 제거하고 재 설치해도 해결되지 않았는데, 전역(-g 옵션 추가)으로 설치하니 해결되었다.
npm i -g mysql2
3. 시퀄라이즈 메서드 사용시 발생한 에러
시퀄라이즈에서는 findAll, create, update 등 DB를 조작하는 메서드를 제공한다. 이 메서드를 사용할 때 관계 설정된 테이블의 경우 정상적으로 작동하지 않았다. init-models.js의 관계 설정에서 as 속성을 제거하여 해결 했다.
alarm.belongsTo(sample, { as: "sample_idx_sample", foreignKey: "sample_idx"}); // 기존 alarm.belongsTo(sample, { foreignKey: "sample_idx"}); // 수정 4. 작성한 API가 작동하지 않는 문제
기존에 정상 작동하고 있던 API에 추가한 테이블을 조인하여 관련 데이터를 함께 조회하도록 수정하였다. 그런데 수정 전에는 정상 작동하던 API가 추가한 테이블과 관련된 코드가 삽입된 후에는 작동하지 않았다. group 속성의 배열에 테이블명과 칼럼을 문자열로 추가할 때 테이블명을 복수형으로 작성하니 해결되었다.
const manhole = await models.sampleTable.findAll({ raw: true, attributes: ["idx"], include: [ // (생략) ], group: [ "sample_states.state", // 테이블명이 sample_state라면, sample_states라고 작성해야 한다. 여기서 state는 컬럼명이다. ], subQuery: false, }); 728x90반응형'CS > DBMS' 카테고리의 다른 글
[Sequelize] Sequelize timestamps의 updatedAt 업데이트, 왜 안될까? (0) 2025.03.26 [redis] 윈도우에 redis 설치 (0) 2024.06.07 [DBMS] MySQL 테이블 Read Only 문제 (0) 2024.03.28 [DBMS] MySQL 타임존 설정(Asia/Seoul) (0) 2024.03.26 [MySQL] 스키마(데이터 포함) Export 및 Import (0) 2024.03.12 다음글이 없습니다.이전글이 없습니다.댓글