일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- node.js
- 파이썬
- 보안
- Baekjoon
- spring Batch
- gcp cloud build
- 웹보안
- 포너블
- nodejs
- 프로그래머스
- Python
- gcp
- cloud run
- Batch
- 리버싱
- 백준
- docker
- hackctf
- 시스템 해킹
- programmers
- pwnable.xyz
- gcp ci/cd
- 사이버보안
- 스프링 배치
- kotest
- 웹해킹
- webhacking.kr
- 회고
- sequelize
- 네트워크
목록sequelize (3)
uju's Tech
sequelize 에서 데이터베이스 마이그레이션 시 ERROR: Cannot read property 'toString' of undefined 에러가 발생할 때가 있는데 changeColumn 등 을 이용할 때 해당 칼럼의 타입을 꼭 명시해주어야한다. type을 명시해주지 않고 마이그레이션하면 위와 같은 에러 발생한다. - 에러 상황 await queryInterface.changeColumn('users', 'serviceId', { allowNull: true, }, { transaction }); - 해결 await queryInterface.changeColumn('users', 'serviceId', { type: Sequelize.UUID, allowNull: true, }, { transa..
데이터베이스의 여러 테이블의 정보를 반영시킬 때 transaction 을 걸지 않고 구현하게 되면 정상적으로 반영이 이루어지지 않는다. 여러 테이블의 정보를 변경할 때 아래와 같이 transaction을 선언해주고 transaction을 걸어준다. const transaction = await db.sequelize.transaction(); 그 후 커밋을 하고 에러가 발생할 경우 롤백을 진행해준다. { await User.create(data, transaction); ... await transaction.commit(); } catch (err) { await transaction?.rollback(); } 가끔 위에서 transaction을 선언하고 커밋 전에 다른 에러가 발생하여 throw 될 ..
table을 추가하고 칼럼을 추가하는 중 어떤 칼럼의 DataTyes를 json으로 지정해주어야 했다. 최신의 Mysql 버전은 DataTypes.json의 형태로 지원을 하고있다. 하지만 현재 개발하고 있는 Mysql 버전은 json 타입을 지원하지 않아 위와 같이 사용해 주지못한다. 그러면 어떻게 사용할 수 있을까? model에서 getter와 setter을 이용해주면 된다. 1.DataType에는 JSON 대신 TEXT를 사용해주자. 2.getter와 setter을 만들어주자. 아래와 같이 구현을 해줄 수 있다. value: { allowNull: true, type: DataTypes.TEXT, /** * @returns {null|any} */ get() { try { return JSON.pa..