하이버네이트를 사용한 Spring Boot에서의 데이터베이스 이행 처리 방법
데이터베이스 배경은 Django 프레임워크(python)를 기반으로 합니다.Django에서는 데이터베이스 이행을 쉽게 시작할 수 있었습니다.장고 이행.Django 프레임워크는 모델을 기반으로 마이그레이션을 작성하기 위한 도구와 데이터베이스에 마이그레이션을 적용하기 위한 도구를 제공했습니다.저는 이 방법이 개발과 생산 모두에서 효과가 있었다고 생각합니다.이행은 프레임워크에 의해 작성되었기 때문에 직접 작성할 필요가 없었습니다.
이제 Spring Boot과 Hibernate로 프로젝트를 시작했습니다.응용 프로그램이 JPA에서 휴지 상태를 사용하도록 설정합니다.이 설정을 사용하면 프레임워크가 데이터베이스 이행을 어떻게 처리하는지 알아야 합니다.즉, 열을 유형으로 변경하거나 제거할 수 있는 경우 데이터베이스를 변경으로 마이그레이션하려면 어떻게 해야 합니까?스프링 부트는 부팅 시 자동으로 열 변경을 감지하고 모델(엔티티)에 따라 존재하지 않는 열을 만듭니다.변수와 관련이 있는 것 같아요
spring.jpa.ddl-auto
그러나 기존 데이터베이스 개체는 어떻게 처리합니까?컬럼도 추가됩니까? 어떤 가치가 있습니까?디폴트값 설정열 유형을 변경하면 어떻게 됩니까?그 후 변경을 처리할 수 있습니까?이러한 설정과 스프링 부트 자동 데이터베이스 관리만으로는 장기적으로 충분하지 않을 수 있습니다.
알고 싶은 것은 Spring Boot과 휴지 상태의 조합으로 데이터베이스 이행을 처리하는 방법에 관한 베스트 프랙티스는 무엇입니까?이 조합을 가진 대부분의 사람들이 이행을 어떻게 처리하는지 기준이 있다고 생각합니다.장고처럼 쉬웠으면 좋겠는데...플라이웨이에 대해서는 알고 있습니다만, 꼭 필요한 것인지, 아니면 스프링 부츠와 휴지 상태를 포함한 이 조합에 많이 사용되는 것인지 모르겠습니다.
Liquibase 또는 Flyway는 데이터베이스 마이그레이션을 버전화/처리하기 위한 두 가지 주요 옵션입니다. ddl-auto
빠르고 지저분하지만 처리해야 할 모든 것은 고려되지도 않고 고려하지도 않습니다.또한 레이스 조건(2개의 인스턴스가 동시에 DDL 업데이트를 시도)의 가능성도 있습니다.
은 더 하겠습니다.ddl-auto
그리고 왜 하면 안 되는지에 대해 설명합니다.
휴지 상태: hbm2dl.auto=업데이트를 실가동 중입니까?
https://www.credera.com/blog/technology-insights/java/liquibase-fed-inconsistent-schemas/은 그 이유와 이유에 대한 자세한 정보를 제공합니다.
언급URL : https://stackoverflow.com/questions/44352870/how-to-handle-database-migrations-in-spring-boot-with-hibernate
'programing' 카테고리의 다른 글
타임스탬프에 가장 적합한 Mongoose 스키마 타입 (0) | 2023.02.28 |
---|---|
인증 유형 10이 지원되지 않아 Postgres DB에 연결할 수 없습니다. (0) | 2023.02.28 |
BEGIN - PL/SQL에서 Atomic 트랜잭션을 종료합니다. (0) | 2023.02.28 |
AngularJS $location이 경로를 변경하지 않음 (0) | 2023.02.28 |
예상되는 할당 또는 함수 호출: no-used-expressions ReactJS (0) | 2023.02.28 |