커뮤니티 서버와 워크벤치를 각각 설치하거나 인스톨러를 이용해 설치해주면 된다.
MySQL Installer(MySQL Community)
choosing the set up time 에서 custom 체크
[Available Products:]에서
[MySQL Servers] – [MySQL Server] – [MySQL Server 8.0] – [MySQL Server 8.0.21 – X64]를 선택하고
▶버튼을 클릭
[Applications] – [MySQL Workbench] – [MySQL Workbench 8.0] – [MySQL Workbench 8.0.21 – X64]
▶버튼을 클릭
[Documentation] – [Samples and Examples] – [Samples and Examples 8.0] – [Samples and Examples 8.0.21 – X86]
▶버튼을 클릭
계속 진행
Standalone MySQL Server / Classic MySQL Replication’ 선택
[Config Type]을 ‘Development Computer’로 선택
[TCP/IP]가 체크된 상태에서 [Port]가 ‘3306’인 것을 확인
[Open Windows Firewall ports for networkaccess] 체크
root 비밀번호 설정
MySQL 서버를 윈도우즈의 서비스로 등록하기 위한 설정. [Windows Service Name]은 전통적으로 많이 사용하는 ‘MySQL’로 변경합니다. 나머지는 그대로 두고 [Next] 버튼을 클릭
[Connect To Server]에 연결할 서버가 보이고 [User name(사용자 이름)]에 ‘root’가 입력되어 있다. [Password(비밀번호)]를 앞에서 설정한 비밀번호로 입력하고 [Check] 버튼을 클릭하면
[Status]가 ‘Connection succeeded’로 변경된다. 연결이 성공되었으니 [Next] 버튼을 클릭한다.
[Start MySQL Workbench after Setup]을 체크 해제하고 [Finish] 버튼을 클릭
npm i sequelize sequelize-cli mysql2
sequelize : node.js에서 사용하는 DB ORM 모듈
sequelize-cli : seuqelize를 CLI 를 통해 제어할수 있게 해주는 모듈
mysql2 : MySQL과 node.js를 연결해주는 드라이버(모듈)
npx sequelize init
sequelize 초기 세팅하기, node.js 환경에 설치한다.
models, migration, seeder, config 등의 sequelize 기본 폴더와 파일이 생성된다.
config.json에 들어가서 password와 database 이름을 수정한다.
password는 MySQL의 비밀번호, database는 프로젝트에서 사용할 DB의 이름이다.
위 코드 처럼 환경변수를 사용하고 싶다면 config.json을 js파일로 바꾸고 코드를 수정해주어야 한다.
models/index.js 파일도 기존의 것을 지우고 수정해주어야 에러가 없다.
"use strict";
// 기존 코드는 문제가 있어서 수정한 코드임
const Sequelize = require("sequelize");
const env = process.env.NODE_ENV || "development";
const config = require(__dirname + "/../config/config.js")[env];
const db = {};
let sequelize;
sequelize = new Sequelize(
config.database,
config.username,
config.password,
config
); // DB와 sequelize를 연결하는 메소드
// 테이블 가져와서 실행(예시임)
db.Comment = require("./comment")(sequelize, Sequelize);
// db.Hashtag = require("./hashtag")(sequelize, Sequelize);
db.Image = require("./image")(sequelize, Sequelize);
db.Post = require("./post")(sequelize, Sequelize);
db.User = require("./user")(sequelize, Sequelize);
db.Nested_Comment = require("./nested_comment")(sequelize, Sequelize);
// associate 문 실행
Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
코딩을 통해 sequelize의 model을 완성시키고
첫 실행때는 DB가 생성되어 있지 않기 때문에 cli를 이용해 DB를 생성시켜준다
만약 DB구조가 바뀐 경우에는 DB를 삭제하고 다시 생성해주거나, 마이그레이션 기능을 활용하면된다.
npx sequelize db:create