Node.js/Express

Excel을 통한 seed/migration데이터 관리

jm_p_op 2024. 5. 6. 11:15
npm install xlsx

  • default value값이 있는 경우 원래 DB에서 migration할때 충돌이 일어날수가 있다.
  • 즉 migration하기전에 DB에 넣어줘야 함으로  migration값= True설정
  • 이후 추가적으로 넣는 값들은 seed에 값에만 반영함으로 migration = False로 잡자
//  modules/seedDB.js
var xlsx = require("xlsx");
const excelFile = xlsx.readFile( "./seeders/seed_data.xlsx" );

async function seed_data(db){
    const table = excelFile.Sheets[db];       // @details 시트의 제목 추출
    return xlsx.utils.sheet_to_json( table, { defval : "" } );
}

module.exports={
    seed_data
}

 

// seed or migration

const seed_db=require("../modules/seedDB")
const {Status}=require("../models")


let adds=await seed_db.seed_data('Status')
adds=adds.filter((key)=>key.migration) // true,false로 설정
await Status.bulkCreate(adds)