[go] Go 언어에서 데이터베이스 마이그레이션 처리 예제

데이터베이스 마이그레이션은 애플리케이션의 데이터베이스 스키마를 새로운 버전으로 업데이트하는 프로세스를 말합니다. Go 언어에서는 Golang-migrate 라이브러리를 사용하여 데이터베이스 마이그레이션을 처리할 수 있습니다.

golang-migrate 설치

Golang-migrate를 설치하려면 다음 명령을 실행합니다.

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

데이터베이스 마이그레이션 파일 생성

데이터베이스 마이그레이션 파일을 생성하려면 다음 명령을 실행합니다.

migrate create -ext sql -dir db/migration -seq create_users_table

위 명령은 db/migration 디렉토리에 create_users_table 이름의 마이그레이션 파일을 생성합니다.

마이그레이션 파일 작성

생성된 마이그레이션 파일 (db/migration/{timestamp}_create_users_table.up.sqldb/migration/{timestamp}_create_users_table.down.sql)을 열어 데이터베이스 스키마 변경에 필요한 SQL 쿼리를 작성합니다.

예를 들어, up 파일에는 새로운 테이블을 생성하는 SQL을 작성하고, down 파일에는 해당 변경을 롤백하는 SQL을 작성합니다.

-- up 파일 예시
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL
);

-- down 파일 예시
DROP TABLE users;

마이그레이션 실행

마이그레이션을 실행하려면 다음 명령을 사용합니다.

migrate -path db/migration -database "postgresql://username:password@localhost:5432/dbname?sslmode=disable" up

위의 명령에서 -database 플래그는 사용 중인 데이터베이스에 맞게 수정되어야 합니다.

이제 Go 언어에서 데이터베이스 마이그레이션을 처리하는 예제를 살펴보았습니다. 데이터베이스 스키마 변경에 따라 마이그레이션 파일을 생성하고 실행하여 데이터베이스를 유지보수하는 과정을 자동화할 수 있습니다.

참고문헌:

기록일: 2021년 8월 29일