250x250
Notice
Recent Posts
Recent Comments
- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Nodejs
- moment
- double quote
- clipBehavior
- Find
- await
- mongoose
- certbot
- wil
- TailwindCSS
- Node.js
- AWS
- MYSQL
- RDS
- findByIdAndDelete
- async
- sequelize
- https
- nginx
- mongodb
- atlas
- til
- flutter
- css
- single quote
- jsonwebtoken
- TypeScript
- EC2
- Express
- JavaScript
Link
Archives
기억 휘발 방지소
Sequelize에서 현재 마이그레이션 되어 있는 DB 테이블 내에 새로운 컬럼 추가하기 본문
728x90
반응형
이미 생성된 테이블의 컬럼을 나중에 변경/추가/삭제 할 때 models 안에 있는 파일을 수정한다고 DB에 반영되지 않는다.
migration을 통해 변경해야 실제 DB에 반영된다.
그리고 migration 파일을 생성해두면 나중에 롤백할 수도 있다.
✔️ 추가/변경/삭제 내용 작성하기
npx sequelize migration:create --name add-column
migrations 폴더 안에 add-column 이라는 파일이 생성된다.
파일을 열어보면 내용은 다음과 같다.
"use strict";
module.exports = {
async up(queryInterface, Sequelize) {
/**
* Add altering commands here.
*
* Example:
* await queryInterface.createTable('users', { id: Sequelize.INTEGER });
*/
},
async down(queryInterface, Sequelize) {
/**
* Add reverting commands here.
*
* Example:
* await queryInterface.dropTable('users');
*/
},
};
up에는 migration을 통해 수정할 모델을 작성
down에는 migration을 통해 되돌릴 때 수행할 로직
users 테이블에 member_since 컬럼을 추가하는 코드이다.
"use strict";
module.exports = {
async up(queryInterface, Sequelize) {
return queryInterface.addColumn("users", "member_since", {
type: Sequelize.DATE,
allowNull: false,
defaultValue: Sequelize.literal("now()"),
comment: "가입일",
});
/**
* Add altering commands here.
*
* Example:
* await queryInterface.createTable('users', { id: Sequelize.INTEGER });
*/
},
async down(queryInterface, Sequelize) {
/**
* Add reverting commands here.
*
* Example:
* await queryInterface.dropTable('users');
*/
},
};
addColumn은 컬럼 추가
changeColumn은 컬럼 변경
removeColumn은 컬럼 삭제
✔️ DB에 적용
npx sequelize db:migrate
위에 명령어를 실행해 실제 DB에 반영하면 된다.
제대로 반영되었을 때 👇
728x90
반응형
'Database > ORM' 카테고리의 다른 글
SequelizeDatabaseError - unknown column in 'where clause' 에러 해결 (0) | 2022.02.22 |
---|---|
Sequelize에서 SQL 쿼리 그대로 사용하기 (0) | 2022.02.17 |
Sequelize 설치부터 연결까지 (0) | 2022.02.16 |
[Node.js / Sequelize] Sequelize에서 CRUD (2) | 2021.10.07 |
[Node.js / Sequelize] 시퀄라이즈 (0) | 2021.10.06 |