jm_p_op

DB-migration 본문

Node.js/Express

DB-migration

jm_p_op 2024. 4. 10. 23:38
  1. migration,model 파일생성
    1. npx sequelize-cli model:generate --name {table명} --attributes {Column명}:{type},email:string
  2. DB에 migration파일 적용/되돌리기
    1. npx sequelize-cli db:migrate
    2. npx sequelize-cli db:migrate:undo
  3. migration파일 생성
    1. npx sequelize migration:create --name {migration파일명}
  4. seed data 파일 생성
    1. npx sequelize-cli seed:generate --name {seed파일명}
  5. seed data 생성,취소
    1. npx sequelize-cli db:seed:all
    2. npx sequelize-cli db:seed:undo

migrations/파일

'use strict';
/** @type {import('sequelize-cli').Migration} */
module.exports = {
  async up(queryInterface, Sequelize) {
    await queryInterface.createTable('Users', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      firstName: {
        type: Sequelize.STRING
      },
      //여러 설정
      calumn_name: {
      	type: Sequelize.INTERGER
      }
    });
  },
  async down(queryInterface, Sequelize) {
    await queryInterface.dropTable('Users');
  }
};

seeders/파일

  • list에 여러 데이터 넣어서 한번에 추가 가능
'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.bulkInsert('Users', [{
        firstName: 'John',
        lastName: 'Doe',
        email: 'demo@demo.com',
        createdAt: new Date(),
        updatedAt: new Date()
      },{
        firstName: 'John2',
        lastName: 'Doe2',
        email: 'demo2@demo.com',
        createdAt: new Date(),
        updatedAt: new Date()
      }], {});
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.bulkDelete('Users', null, {});
  }
};

 

 

참고자료

'Node.js > Express' 카테고리의 다른 글

queryinterface 종류  (0) 2024.04.14
DB - seed 주의점  (0) 2024.04.12
DB - Postgre  (0) 2024.04.05
Router, RESTful API, 계층화 전략  (0) 2024.04.04
프레임워크 Express, 가상환경 nodeenv, git ignore  (0) 2024.04.01