migration(마이그레이션) 정리!

김현진·2020년 7월 28일
0
post-custom-banner

migration이 단어를 보기만 해도 무섭다.

migration(마이그레이션)에 대해서 잘 정리를 해보겠습니다.(migration을 잘 모르고 이 글을 보신다면 엄청난 행운입니다.)

자바스크립트언어 데이터베이스는 mySQL을 사용하여 예시를 들겠습니다.

데이터베이스에 테이블을 생성 후 나중에 테이블 내 정보를 수정(테이블 컬럼명 수정, 테이블이름 수정,테이블제거....) 할때에 models(자바스크립트 파일 ex) index.js, user.js, ....) 안에 파일을 바꾼다고 하여 그대로 반영되지는 않습니다.

그렇다면 어떻게 해야될까요?

여기서는 마이그레이션을 이용하여 테이블의 내용을 바꿔서 DB에 적용을 해보도록 해보겠습니다.

마이그레이션을 적용하기 위해선 몇가지 모듈들을 설치를 진행해야 됩니다.

터미널 창을 켜고

npm i sequelize , mysql2, 
npm i -D sequelize-cli // -D는 개발모드에서만 쓸꺼야

sequlize는 알겠는데 mysql2는 뭐고 sequelize-cli는 뭘까요?

mysql2는 데이터베이스와 서버 중간 사이 연결장치 (컴퓨터에 있는 키보드 마우스 드라이버 등),

sequelize-cli 터미널창에 sequelize를 쓸꺼니깐 알고있어 이정도로 이해하시면 되겠습니다.

ex) npx sequelize init => 이런식으로 sequelize를 쓸수 있는 이유는 sequelize-cli를 설치해서 그렇습니다.

=> 추가적으로 npm i -g sequelize-cli를 하셔도 됩니다.(글로벌로 설치할경우는 npx를 안쓰고
바로 sequelize init를 쓰면 되요)

이렇게 설치하셨나요?

그러면 바로 실전으로 들어가겠습니다.

터미널창에 npx sequelize init을 빠르게 칩니다.

(글로벌로 설치 했을경우는 sequelize init을 하면되겠죠??)

그러면 왼쪽에 보시면 migration, config, models, seeders 라는 폴더가 생겼을꺼에요.

그리고 하나 알아두실게 데이터베이스에서 테이블이랑 sequelize에서 model이랑 같다고 생각하시면 편합니다.

여기서는 seeders라는 폴더를 제외한 migration, config, models라는 것을 알아보겠습니다.
(사실 seeders는 모릅니다. ㅜㅜ)

첫번째로 config폴더

config폴더로 가시면 config.json이라는 폴더가 있을겁니다.

config.json에는 환경을 설정을 해준다고 생각을 하시면 편할꺼에요.

development, test, production 객체가 있네요. (영어 그대로 개발모드, 테스트모드, 배포모드)

그리고 각 객체에 공통된 키가 있습니다.

username: mySql의 유저네임 => 보통 바꾸지 않았다면 'root'로 설정되어 있을겁니다.

password: mySql의 비밀번호 => mySql 설치시에 비밀번호입니다. 

database: databse이름(스키마)

host: '127.0.0.1' => localhost 일 때

dialect: 'mysql' => mySQL데이터베이스 사용시

여기서 config.json에 중요정보들이 많으므로 .gitignore 폴더를 하나 생성한 후

config.json 파일을 .gitignore에 넣어주시면 됩니다.(그러면 config.json파일은 깃으로 올릴때 업로드가 안되겠죠?? 내 소중한 정보들 )

ex) 현재 폴더위치: .gitignore

config/config.json

다음 글에서 계속 쓰겠습니다.

글이 길어지면 집중력이 흩트러지니 다음글에서 계속.....

profile
기록의 중요성
post-custom-banner

0개의 댓글