Search

테이블이 변경된 DB 마이그레이션 체험기

Status
Date
2024/03/13
Tags
Database

1. 개요

테이블 구조가 변경 됨에 따라 운영 서버와 개발 서버 간 데이터베이스에 차이가 생겼습니다. 새학기를 맞아 서비스 운영을 다시 시작하는 만큼 빠른 시일 내로 기존 운영 서버의 데이터 베이스를 변경해주는 작업이 필요했는데, 오늘 포스팅 해서는 세련된 노가다로 DB 마이그레이션 진행 과정을 담아보도록 하겠습니다.

2. Sublime Text

텍스트 에디터로는 Sublime Text를 사용했습니다.
DB 마이그레이션을 하기 위해 구글링을 하다보니 Flyway라는 마이그레이션 툴도 알게되었는데요, 시간이 촉박한 만큼 이번에는 Text Editor를 통해 빠르게 작업을 진행했습니다.
모든 에디터가 그렇겠지만 Sublime Text 또한 정규 표현식을 활용한 문자열 대체 기능을 지원하는데, 해당 기능을 빠르게 짚고 넘어가보도록 하겠습니다.
Sublime을 열고 cmd + shift + f 를 누르면 다음과 같은 창이 뜨는데, 좌측은 .*을 체크하면 정규 표현식으로 찾고자 하는 문자열을 검색 가능합니다.
원하는 패턴을 찾았다면 Replace에 변경할 문자열 등을 적으면 끝입니다.

3. 실습

현재 meal 테이블은 다음과 같습니다.
변경된 테이블은 다음과 같습니다.
Sublime을 통해 grade 관련 필드를 제거하는 것과 더불어 price도 추가해보도록 하겠습니다.
우선 \d+\.\d+ 다음 표현식은 숫자.숫자 로 표기된 모든 수를 포함합니다. 따라서 main_grade, taste_grade 등과 같이 0.0 꼴로 이루어진 모든 값들을 empty 값으로 변환해주어야 합니다.
변환 후 결과는 다음과 같습니다.
위와 같이 적게는 수십에서 많게는 수천건에 달하는 행들을 하나하나 찾기 보다는 정규 표현식을 통해 삭제 혹은 수정하고자 하는 구간들을 찾고 이를 대체해 주는 것이 좋습니다.