내가 만든 Express 서버를 무료로 호스팅하기(2) - Heroku + Sequelize (MySQL, MariaDB)

김현우·2020년 8월 7일
2

Express

목록 보기
2/2

시퀄라이즈(Sequelize)는 자바스크립트 ORM 라이브러리입니다.

본 포스팅에서는 Heroku에 올린 서버에서 Sequelize를 사용하여 DB를 연동시키는 방법을 다룹니다.

Heroku에 올린 서버에서 DB를 사용하려면 Heroku에 있는 Addon을 사용해야 합니다. 성능이 좋은 DB는 당연히 유료이지만 정식 서비스를 위한 서버를 올리는게 아니니까 무료 Addon을 이용합니다.

이전 포스팅에서 로컬에 있는 프로젝트를 Heroku에 올렸었죠. 그 로컬 프로젝트의 루트 경로에서 터미널을 켠 다음, 아래의 명령을 실행하여 addon을 추가해줍니다.

heroku addons:create jawsdb-maria:kitefin

jawsdb-maria라는 Addon에서 kitefin이라는 무료 플랜을 추가하는 코드입니다.

방금 한 줄로 DB를 사용할 수 있게 되었습니다. 이제 Sequelize에서 방금 추가한 DB에 접근할 수 있도록, connection 정보를 수정해줍니다.

로컬 환경에서 Sequelize를 사용하고 있었다면 이미 '/config/config.json'파일이 있을 것입니다. 만약 없다면 프로젝트 루트 경로에서 터미널을 열고 다음의 명령을 실행해주세요.

sequelize init

Heroku에 올리는 서버는 개발환경이 아니라 프로덕션 환경입니다. '/config/config.json'파일에서는 환경별로 적용할 DB 정보를 기입하게 되어있습니다.

파일을 열어 development, test, production 세 가지 항목 중 production의 내용을 수정합니다.

DB연결을 위한 정보로 username, password, database(db name), host가 있고 이는 터미널에서 아래의 명령을 입력하여 확인할 수 있습니다.

heroku config

명령을 실행하면 긴 문자열이 하나 출력될 텐데, 이 문자열은 다음과 같은 구조입니다.

JAWSDB_MARIA_URL: mysql://username:password@host:port/db_name

여기에 뜨는 DB 정보를 config.json 파일에 긁어넣어주시면 됩니다.

이후 Heroku에 Deploy하면 DB연동이 끝납니다.

연동한 DB 수정

sequelize로 생성한 테이블의 구조에 변화가 생긴다면, DB서버에 접속해서 직접 테이블을 삭제한 후에 다시 Express 서버를 구동시키곤 하는데요.

우리가 방금 연동시킨 DB서버에는 어떻게 접속하는지 잘 모르실 수 있을테니, 그 방법을 알려드리겠습니다.

HeidiSQL

MariaDB를 설치하면 기본적으로 딸려오는 DB관리용 GUI프로그램입니다. MySQL의 Workbench와 동일한 개념의 프로그램인데 훨씬 못생겼고, 가볍습니다.
Heidi가 없으시다면 HeidiSQL에서 다운로드 하시면 됩니다.


↑ 헤이디를 실행시키면 나오는 화면입니다. 좌하단의 신규 버튼을 눌러서 [루트 폴더에 세션 생성]을 선택해주세요.

↑ 좀 전에 config.json파일에 적었던 DB정보들을 다시 입력해주시고 '열기'를 눌러주시면 우리가 Heroku에 연동한 DB를 직접 수정할 수 있습니다.

0개의 댓글