# config/config.json 내부의 database에 설정된 이름으로 DB 생성
npx sequelize db:create
#1. generate
npx sequelize model:generate --name Posts --attributes title:string,content:string,password:string
#2. migrate
npx sequelize db:migrate
#3. migration 파일 내 입맛대로 수정 후, undo
# 가장 최근에 실행한 db:migrate를 취소합니다
npx sequelize db:migrate:undo
#4. 다시 migrate
# migrations 폴더에 존재하는 migration 파일을 기반으로 테이블을 생성합니다.
npx sequelize db:migrate
npx sequelize migration:generate --name 이름
그러면 아래처럼 새로운 migration 이 생성됨 [nickName.js]
"use strict";
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.addColumn("users", "password", {
type: Sequelize.STRING,
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.removeColumn("users", "password");
},
};
나는 이렇게 했다.
'use strict';
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up(queryInterface, Sequelize) {
/**
* Add altering commands here.
*
* Example:
* await queryInterface.createTable('users', { id: Sequelize.INTEGER });
*/
await queryInterface.addColumn('Users', 'nickName', {
type: Sequelize.STRING,
allowNull: false,
});
},
async down(queryInterface, Sequelize) {
/**
* Add reverting commands here.
*
* Example:
* await queryInterface.dropTable('users');
*/
},
};
npx sequelize db:migrate
성공!
이렇게 하면, db에 반영된 것을 볼 수 있다.
하지만, models > users.js에는 반영되지 않았으므로 수동으로 수정해줘야 한다.