MySQL

[MySQL] Railway에서 DB 생성 및 배포하기

코드비버 2025. 3. 20. 01:41

백엔드 서버 패포용으로 Railway를 선택한 이유 중 하나는 MySQL DB를 지원하기 때문이다.

원래는 로컬에서 직접 만든 DB와 똑같은 속성을 갖도록 만들고 싶었는데 아무래도 무료 서비스라 그런지 기능이 너무 제한적이라 아쉬웠다.

 

DB 생성하기

기존에 서버가 생성된 위치에 새로운 서비스 생성
DB 서비스 생성 과정

 

이전 포스팅에서 서버를 만들었던 프로젝트와 동일한 위치에 MySQL DB를 추가할 것이다.

우측 상단의 Create 버튼을 클릭하고 Database 서비스를 생성하면 PostgreSQL, Redis, MongoDB, MySQL 중 선택이 가능하다.

 

테이블 생성하기 

DB를 선택하고 조금만 기다리면 서버와 같은 위치에 DB가 생성되고 자동으로 배포되는데 이제 테이블을 추가해주면 된다.

 

여기서 당황했던 점은 분명히 MySQL DB를 생성했는데 컬럼의 type은 다른 DB에서 사용하는 것들이 들어가있었고, 작성일자를 저장하기 위해 사용한 CURRENT_TIMESTAMP 기능도 사용할 수가 없다는 것이다.

CLI를 통해 어느정도 속성을 바꿀 수 있다고는 하는데 방법을 찾아봐도 참고할 자료가 너무 없어서 할 수 없이 그냥 문자열 입력은 모두 text 타입으로 받았다.

참고로 내가 만든 DB에는 아래 속성들만 사용되었다.

  • id : serial
  • 단어 및 문장, 문자열 입력, 작성일자 입력 : text
  • 별점 점수 : integer

이 외에 boolean, json 등 여러 타입 선택지가 있었지만 최대한 아는 범위에서만 사용하려 했고, 당장은 배포한 앱이 문제 없이 작동하도록 만드는게 중요하기 때문에 일단은 무료 서비스의 한계라 생각하고 넘어가기로 했다.

 

환경변수 확인하기

서버가 DB에 접근해 데이터를 처리하려면 DB 호스트, 이름, 비밀번호 등의 정보가 필요하다.

이 정보들은 노출되면 안되기 때문에 환경변수로 저장해 사용되어야 하고, Variables 탭에서 확인 가능하다.

환경변수들의 값은 이전에 생성해둔 서버의 환경변수로 추가해주면 된다.

 

https://duski96.tistory.com/23

 

[Node.js] Railway 배포하기

이전 포스팅에서 예고했던대로 이번엔 'Railway'를 이용한 백엔드 서버 배포 과정을 포스팅할것이다.이 과정에서 시행착오가 꽤 많았는데 하나씩 풀어보려 한다. Railway란?Railway는 개발자들이 코

duski96.tistory.com

생성된 MySQL 서비스의 환경변수

 

참고로 빨간 박스 이외의 변수들은 사용할 일이 없었다.

Railway에서 무료 플랜을 사용할 경우 외부에서 DB에 직접 접근하는 기능을 막아둔 모양이라 DB의 Public 도메인을  사용할 일이 딱히 없었다.

 

비하인드

DB를 생성하면서 간단한 단어는 character 타입으로 받으려 했었는데, 이 타입은 제한 길이가 얼마나 짧은지 단어 하나도 제대로 들어가지 않았다.

솔직히 어디에 써먹으라고 만든 타입인지 아직도 잘 모르겠다.

 

그리고 가능하면 DB 테이블은 서버를 배포하기 전에 미리 생성해두는게 좋을 것 같다.

어처구니 없게도 서버에 모든 DB 테이블을 호출하는 코드를 작성해놓고서 정작 배포단계에서는 테이블을 하나만 만들어뒀다.

그래놓고 왜 또 로컬에서 잘 되던것이 배포하니까 오류가 나는거냐며 혼자 노발대발하며 아까운 시간을 보내버렸다. 😭

'MySQL' 카테고리의 다른 글

[MySQL] DB 생성 및 권한 부여  (0) 2025.02.26