[go] Go 언어에서 데이터베이스 마이그레이션 처리하는 방법

Go 언어로 만든 애플리케이션에서 데이터베이스 마이그레이션은 중요한 과정이며 데이터베이스 스키마 변경에 따른 구조적인 변화를 관리할 수 있습니다. 이 기술 블로그에서는 Go 언어로 데이터베이스 마이그레이션을 처리하는 방법에 대해 알아보겠습니다.

1. 데이터베이스 마이그레이션 라이브러리 선택

Go 언어에서는 데이터베이스 마이그레이션을 처리하기 위한 다양한 라이브러리가 있습니다. 대표적으로 golang-migratepressly/goose 등이 있습니다.

두 라이브러리 모두 Go 언어로 작성되었으며, 여러 데이터베이스 시스템을 지원하고, 마이그레이션 파일의 버전 관리 및 롤백을 지원합니다.

2. golang-migrate를 활용한 데이터베이스 마이그레이션 설정

golang-migrate를 사용하여 Go 언어 애플리케이션에서 데이터베이스 마이그레이션을 설정하는 방법은 다음과 같습니다.

2.1. golang-migrate 설치하기

$ go get -u -d github.com/golang-migrate/migrate/cmd/migrate
$ go install github.com/golang-migrate/migrate/cmd/migrate

2.2. 마이그레이션 파일 생성

데이터베이스 스키마 변경에 따른 SQL 마이그레이션 파일을 생성합니다.

$ migrate create -ext sql -dir db/migration -seq init_schema

2.3. 데이터베이스 마이그레이션 수행

$ migrate -path db/migration -database "postgresql://localhost:5432/mydb?sslmode=disable" up

위 명령어는 db/migration 디렉토리의 마이그레이션 파일들을 적용하여 데이터베이스를 업데이트합니다.

golang-migrate를 사용하면, Go 언어 애플리케이션에서 데이터베이스 마이그레이션을 간단하게 수행할 수 있습니다.

3. goose를 활용한 데이터베이스 마이그레이션 설정

pressly/goose 사용하여 Go 언어 애플리케이션에서 데이터베이스 마이그레이션을 설정하는 방법은 다음과 같습니다. goose는 golang-migrate와 유사하게 마이그레이션과 롤백을 지원합니다.

4. 마무리

Go 언어를 사용하여 데이터베이스 마이그레이션을 처리하는 방법에 대해 알아보았습니다. golang-migrate와 goose는 각각의 특징에 따라 선택하여 사용할 수 있으며, 프로젝트의 요구 사항과 적합성을 고려하여 적절한 라이브러리를 선택하는 것이 중요합니다.