ORM / Sequelize - Migrate, Seed

Flexyz·2023년 9월 24일

Database

목록 보기
1/2
post-thumbnail

이전 블로그에 작성했던 포스트입니다.

목적

Sequelize Migrate와 Seed를 사용하여 모델을 생성, 초기적재 등 수행합니다.

Migrate

  1. 모델 및 마이그레이션 파일 생성
$ npx sequelize model:generate --name user --attributes name:string

Sequelize CLI [Node: 16.17.1, CLI: 6.5.1, ORM: 6.25.1]

New model was created at D:\prj\project2\team12\back\src\models\user.js .
New migration was created at D:\prj\project2\team12\back\src\models\migrations\20221019110308-create-user.js .
  1. 생성 파일 수정 : 컬럼 추가 등
  1. 데이터베이스 생성 후 마이그레이션
npx sequelize db:migrate
  1. 디비 생성 확인

Seed

  1. seed 파일 생성
npx sequelize seed:generate --name user
  1. seed파일 수정 - 임포트할 데이터 기입
const { v4: uuidv4 } = require("uuid");

("use strict");

const created_at = new Date();
const updated_at = new Date();
const deleted_at = new Date();

/** @type {import('sequelize-cli').Migration} */
module.exports = {
  async up(queryInterface) {
    return queryInterface.bulkInsert(
      "item",
      [
        {id: uuidv4(), item_name: "옷01", item_type: '["남자", "상의", "반팔티"]', item_desc: "아끼는 옷 입니다.", status: "inStock", created_at, updated_at, userId: "159129d8-0249-4500-b6ec-028056fa8eef"},
        {id: uuidv4(), item_name: "옷02", item_type: '["남자", "상의", "반팔티"]', item_desc: "아끼는 옷 입니다.", status: "inStock", created_at, updated_at, userId: "159129d8-0249-4500-b6ec-028056fa8eef"},
        {id: uuidv4(), item_name: "옷03", item_type: '["남자", "상의", "반팔티"]', item_desc: "아끼는 옷 입니다.", status: "inStock", created_at, updated_at, userId: "159129d8-0249-4500-b6ec-028056fa8eef"},
        {id: uuidv4(), item_name: "옷04", item_type: '["남자", "상의", "반팔티"]', item_desc: "아끼는 옷 입니다.", status: "inStock", created_at, updated_at, userId: "159129d8-0249-4500-b6ec-028056fa8eef"},
        {id: uuidv4(), item_name: "옷05", item_type: '["남자", "상의", "반팔티"]', item_desc: "아끼는 옷 입니다.", status: "inStock", created_at, updated_at, userId: "159129d8-0249-4500-b6ec-028056fa8eef"},
      ]
    );
  },

  async down(queryInterface, Sequelize) {
    /**
     * Add commands to revert seed here.
     *
     * Example:
     * await queryInterface.bulkDelete('People', null, {});
     */
    await queryInterface.bulkDelete("item", null, {});
  },
};
  1. 시드 실행
npx sequelize db:seed:all

참고

https://medium.com/prisma-korea/번역-마이그레이션과-sequelize-cli-튜토리얼-3926c0a9eae6

profile
Think about a better architecture

0개의 댓글