Wecode - Project 2 (부트캠프)/독학

[dbmate] dbmate up vs. dbmate migration, dbmate drop

JBS 12 2023. 10. 2. 18:31

dbmate와 mysql의 관계가 뭐니

dbmate는 데이터베이스 마이그레이션(Migration) 도구로, 데이터베이스 스키마의 변경 사항을 관리하고 버전을 관리하는 데 사용

 

이 도구는 데이터베이스 스키마를 관리하는 과정을 자동화하고,

다른 개발자나 환경에서도 일관된 데이터베이스 스키마를 유지하도록 도와줍니다.

 

dbmate는 다양한 데이터베이스 시스템과 통합될 수 있지만 여기서는 MySQL과의 관계에 중점을 둡니다.

MySQL은 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터를 테이블 형태로 저장하고 관리합니다. dbmate는 MySQL과 함께 사용하여 다음과 같은 작업을 수행할 수 있습니다:

1. 마이그레이션 생성: dbmate를 사용하면 데이터베이스 스키마 변경 사항을 기록하는 마이그레이션 파일을 생성할 수 있습니다. 이 파일은 새로운 테이블 생성, 기존 테이블 수정, 데이터 마이그레이션 등과 같은 작업을 정의합니다.

2. 마이그레이션 실행: 생성된 마이그레이션 파일을 사용하여 데이터베이스 스키마를 업데이트할 수 있습니다. dbmate up 명령을 사용하여 마이그레이션 파일을 실행하고, 데이터베이스 스키마를 최신 상태로 유지할 수 있습니다.

3. 버전 관리: dbmate는 실행된 마이그레이션 파일의 상태를 추적하고 데이터베이스 버전을 관리합니다. 따라서 어떤 마이그레이션이 이미 적용되었는지 추적하고 필요한 경우 되돌릴 수 있습니다.

4. 로컬 개발과 협업: dbmate를 사용하면 로컬 개발 환경과 팀원 간의 협업에서 데이터베이스 스키마 변경을 효과적으로 관리할 수 있습니다. 모든 변경 사항이 마이그레이션 파일로 문서화되어 있으므로 다른 개발자가 동일한 스키마 변경을 수행할 수 있습니다.

따라서 dbmate는 MySQL과 함께 사용되어 데이터베이스 스키마의 변경을 관리하고 버전을 관리하는 데 도움을 주는 유용한 도구입니다.


"dbmate up" 및 "dbmate migration"은

 데이터베이스 마이그레이션 관리 도구인 "dbmate"의 두 가지 다른 명령

데이터베이스 스키마를 관리하고 업데이트하는 데 사용

dbmate up:

dbmate up 명령은 기존 마이그레이션 파일(일반적으로 SQL 또는 다른 형식의 데이터베이스 스키마 변경 스크립트)을 사용하여 현재 데이터베이스 스키마를 업데이트


"up" 명령은 마이그레이션 파일을 순차적으로 실행하여 데이터베이스 스키마를 최신 상태로 유지

새로운 스키마 변경 사항이 추가되면 "up" 명령을 실행하여 업데이트


이전 버전의 마이그레이션 파일에 대한 정보를 데이터베이스에 저장하여 상태를 추적


dbmate migration:

dbmate migration 명령은 새로운 마이그레이션 파일을 생성

 

이 파일은 데이터베이스 스키마 변경 사항을 정의하는 SQL 또는 다른 형식의 스크립트를 포함


"migration" 명령을 사용하여 데이터베이스 스키마에 변경 사항을 추가하고 싶을 때

 새로운 마이그레이션 파일을 생성할 수


새로운 마이그레이션 파일을 만들고 해당 파일에 스키마 변경 사항을 기록한 후, "dbmate up" 명령을 사용하여 실제 데이터베이스에 변경 사항을 적용할 수 있습니다.

 

"dbmate up"은 현재 데이터베이스 스키마를 업데이트
"dbmate migration"은 새로운 스키마 변경 사항을 정의하고 기록할 때 사용

두 명령을 함께 사용하여 데이터베이스 스키마를 효과적으로 관리할 수 있습니다.

"dbmate drop" 명령을 실행한 후

"dbmate migration" 명령을 실행하는 이유는

데이터베이스를 다시 생성하고 초기 상태로 되돌리기 위함입니다.

 

일반적으로 다음과 같은 상황에서 이를 수행할 수 있습니다:

  1. 개발 환경 초기화: "dbmate drop"을 사용하여 데이터베이스 스키마를 삭제한 후 "dbmate migration"을 실행하여 초기 데이터베이스 스키마를 생성합니다. 이렇게 하면 개발 환경을 깨끗한 상태로 초기화할 수 있으며, 새로운 개발 또는 테스트 프로젝트를 시작할 때 유용합니다.
  2. 스키마 변경 롤백: 스키마 변경 사항을 테스트하거나 스키마 변경 사항을 롤백하려고 할 때 "dbmate drop"을 사용하여 현재 스키마를 삭제하고 이전 상태로 되돌릴 수 있습니다. 그런 다음 "dbmate migration"을 실행하여 이전 스키마 상태를 복원할 수 있습니다.
  3. 테스트 환경 관리: 테스트 시나리오를 실행하기 전에 "dbmate drop"을 사용하여 테스트 데이터베이스를 초기화하고, 그런 다음 "dbmate migration"을 실행하여 필요한 테스트 데이터베이스 스키마를 설정합니다.

"dbmate migration"은 데이터베이스 스키마를 관리하고, 마이그레이션 파일을 실행하여 데이터베이스를 업데이트하는 데 사용됩니다. "dbmate drop"을 실행하면 스키마가 삭제되므로 "dbmate migration"을 통해 새로운 스키마를 만들고 관리할 필요가 있습니다. 이를 통해 개발 및 테스트 환경을 효과적으로 관리하고 데이터베이스 스키마 변경을 제어할 수 있습니다.