본문 바로가기

MySQL/MySQL 형상 관리

About Sequel SAFE

배경

데이터베이스 형상 관리란, 데이테베이스를 구성하는 각 객체 - Table, View, Index, Stored Procedure, Function, Trigger, etc - 와 데이터베이스 자체에 대한 버전 관리를 기반으로 변경 사항을 체계적으로 추적하고 통제하는 것입니다.

하지만 MSA (Micro Service Architecture)를 지향하는 현재에도 데이터베이스를 독립적인 배포의 대상이 아닌 백엔드 시스템의 일부로 보는 경향이 짙은 것 같습니다.

하지만, 프론트엔드나 백엔드처럼 데이터베이스 역시 별도의 형상 관리가 가능합니다.

데이터베이스를 형상 관리한다면 배포 역시 체계적이 됩니다. 즉, 더 이상 Diff. 도구로 개발 DB와 프로덕트 DB의 차이를 찾아 마이그레이션 스크립트를 작성할 필요가 없습니다. 이미 데이터베이스에는 명확한 버전이 부여되었으므로, 관리자는 배포할 버전을 선택하기만 하면 됩니다.

소개

MS SQL Server에서 사용할 수 있는 형상 관리 방법은 2009년 블로그에 공개하였고, 대표적으로 아이덴티티 게임즈에 근무하던 기간에 여러 게임 프로젝트에 적용하여 안정적으로 운용했습니다.

회사를 옮겨 모바일 게임을 개발하게 되면서 MySQL을 사용하게 되었는데, 이 포스트에서 소개하는 Sequel SAFE란 바로 MySQL 환경에서 생성한 데이터베이스를 형상 관리할 수 있는 웹 기반 도구 입니다.

본 프로젝트가 바빠 많은 기능을 탑재하지 못하고 있지만, 그래도 최근 2년 동안 저의 DB 업무에 많은 도움을 준 도구이기에 관심 있는 분들도 사용해 보실 수 있도록 소개하려 합니다.

Features

  • 형상 관리
    • 데이터베이스 객체 (테이블, 뷰, 루틴, 이벤트) 단위의 버전 관리
    • 데이터베이스 단위의 버전 관리
    • 루틴 (Stored Procedure, Function) 버전 별 소스 코드 비교
    • Stored Procedure의 API 규격에 대한 자동화된 명세서 생성
  • 배포
    • 배포 대상 인스턴스를 등록하고, 원 클릭으로 데이터베이스 단위 배포
    • 특정 버전으로 업데이트하는 스크립트를 sql 파일로 추출
  • Stored Procedure 스캐폴딩
    • 테이블 단위로 테이블의 메타 데이터를 사용하여 CRUD 용 SP 소스 코드 생성

설치

AWS 환경에서 아래 가이드 문서를 참고하여 설치할 수 있습니다.

https://docs.google.com/document/d/1eXTPKigpwvaMSvs5804j_lkhOJQimQ2ByEYQ0l-Is5I/edit?usp=sharing 

 

Sequel SAFE on AWS - 설치

개요 퍼블릭 AMI 이미지를 복원하여 2개의 EC2 인스턴스를 생성합니다. 이미지 이름 : SequelSAFE-DEV-DB SQL 개발자용 데이터베이스 MySQL 8.0.22 이미지 이름 : SequelSAFE-WEB 웹 사이트 및 형상 관리용 데이터

docs.google.com

데모 영상

이전에 올린 포스트를 링크합니다.

https://purumae.tistory.com/193

 

데이터베이스 형상 관리

제가 생각하는 RDBMS에서의 형상관리는 아래 글을 적은 이후 그다지 바뀌지 않았습니다. 2009/04/01 - [MS SQL/Sequel Safe] - [Sequel Safe] 개요 블로그로 정리하기 전부터 사용하던 방식이니.. 벌써 10년이 되

purumae.tistory.com

 

'MySQL > MySQL 형상 관리' 카테고리의 다른 글

데이터베이스 형상 관리  (7) 2018.05.04