dukDukz

210604 Sequelize-auto 로 테이블 생성 구문 만들기 본문

웹 개발/DB | MYSQL

210604 Sequelize-auto 로 테이블 생성 구문 만들기

헤일리_HJ 2021. 6. 4. 15:19

기본 세팅을 마치고 (npm i express)


1. 시퀄라이즈 세팅


npm i sequelize         클래스 사용 위한 패키지
npm i mysql2            DB 접속을 위한 패키지
npm i sequelize-cli     npx를 사용하기 위한 패키지 (*폴더 만들어줘야 하니까)

npx sequelize init      <-- sequelize-cli  //실제로 폴더를 만드는 코드

폴더 3개 생성됨
config 폴더와 DB 접속 정보 수정하기
models 폴더 = 우리가 만든 dB를 객체 하나로 담기 위해서

 

 



2. Sequelize-auto

 

npm install sequelize-auto


DB 데이터 베이스에 있는 테이블 구조를 가져와서 그대로 모델.js 를 만들어준다
class 라는 dB에 총 3개를 만들어준다.

터미널에
sequelize-auto -o "./models" -d class -h "localhost" -u "root" -p "3306" -x "root" -e mysql

해당 커맨드를 입력하면 기존 데이터베이스에 있는 테이블들에 해당하는 Model 파일들을 만들어준다.

-o "경로"
-d "db 이름"
-h "url"->localhost
-u "root"
-p "port"
-x "password"
-e "mysql"


[순서]

더보기

npm install sequelize-auto
sequelize-auto -o "./models" -d class -h "localhost" -u "root" -p "3306" -x "root" -e mysql

이게 안되면 
npm install -g sequelize-auto
npx sequelize-auto -o "./models" -d class -h "localhost" -u "root" -p "3306" -x "root" -e mysql

이렇게 하면 테이블 생성 코드가 자동으로 만들어진다
DB의 기존 테이블을 편하게 연동하기 위해 도와주는 도구인 sequelize-auto를 사용한 것이다.


블로그 참고 https://www.hanumoka.net/2018/11/23/node-20181123-express-setting-sequelize/

dB : class
생성된 tables

curriculum.js 

내가 직접 작성할 필요 없이 dB에서 읽어와서 자동으로 생성해준다.

const Sequelize = require('sequelize');
module.exports = function(sequelize, DataTypes) {
  return sequelize.define('curriculum', {
    id: {
      autoIncrement: true,
      type: DataTypes.INTEGER,
      allowNull: false,
      primaryKey: true
    },
    subject: {
      type: DataTypes.STRING(100),
      allowNull: false
    },
    start_date: {
      type: DataTypes.DATEONLY,
      allowNull: false
    },
    end_date: {
      type: DataTypes.DATEONLY,
      allowNull: false
    },
    content: {
      type: DataTypes.TEXT,
      allowNull: true
    }
  }, {
    sequelize,
    tableName: 'curriculum',
    timestamps: false,
    indexes: [
      {
        name: "PRIMARY",
        unique: true,
        using: "BTREE",
        fields: [
          { name: "id" },
        ]
      },
    ]
  });
};

'웹 개발 > DB | MYSQL' 카테고리의 다른 글

2021.06.03 DB - LEFT JOIN  (4) 2021.06.03
210506 Sequelize 상세 설명  (0) 2021.05.06
210504 MVC / Sequelize 시퀄라이즈 활용하기  (0) 2021.05.04
210503 테이블 여러개 JOIN ON  (0) 2021.05.03
21.04.28 DB Connection pool  (0) 2021.04.30