[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.sql
및 db/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 언어에서 데이터베이스 마이그레이션을 처리하는 예제를 살펴보았습니다. 데이터베이스 스키마 변경에 따라 마이그레이션 파일을 생성하고 실행하여 데이터베이스를 유지보수하는 과정을 자동화할 수 있습니다.
참고문헌:
- https://github.com/golang-migrate/migrate
기록일: 2021년 8월 29일