MySQL 프로젝트에 도입준비.

성민개발로그·2022년 1월 9일
0

데이터베이스

목록 보기
4/6
post-thumbnail


직접 MySQL 언어로 직접 조작하지않고 sequelize 라이브러리를 통해서 MySQL 를 조작할것이다.

1. 프로젝트 초기 sequelize 설치

npm i sequelize sequelize-cli mysql2

이렇게 3개를 설치를 해준다.
mysql2: node.js 랑 mysql 를 연결해주는 드라이버 역할.

2.해당 프로젝트 sequelize 셋팅

npx sequelize init

설치를 통해서 기본적인 sequelize 셋팅이 된다.
설치를 하면

이렇게 config, migrations, models, seeders 폴더들이 생성이되면 성공적으로 설치를 한것이다.

3.config 설정

const dotenv = require('dotenv');

dotenv.config(); // dotenv 사용하기 위해서 json 파일을 js 로 바꿧다.

module.exports={
  "development": { // 개발모드 config
    "username": "root",
    "password": "1234",// 자기 mysql 비밀번호 넣어주세요.
    "database": "react-nodebird", // 데이터베이스 이름.
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "test": { //테스트용 config
    "username": "root",
    "password": null,
    "database": "react-nodebird",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "production": {// 배포용 config
    "username": "root",
    "password": null,
    "database": "react-nodebird",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }
}

4.models폴더 index.js 설정

const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development'; // 아무것도 설정이 안되있으면 development 로 설정
const config = require('../config/config')[env]; //설정한 config 에서 'development' config 가져오자.
const db ={};

const sequelize = new Sequelize(config.database, config.username, config.password, config);// 시퀄라이즈 노드랑mysql 연결해주는 역할.

/*db.Comment = require('./comment')(sequelize, Sequelize); // 모델 불러오고 실행해준다.
db.Hashtag = require('./hashtag')(sequelize, Sequelize);
db.Post = require('./Post')(sequelize, Sequelize);
db.User = require('./user')(sequelize, Sequelize);
db.Image = require('./image')(sequelize, Sequelize);*/  //나중에 모델 구현하고 추가해줄 코드. 

Object.keys(db).forEach(modelName => {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

0개의 댓글