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)