자바 마이그레이션
레일과 자바에서 루비를 모두 사용합니다. Rails 프로젝트에서 작업 할 때 마이그레이션을 사용하는 것을 정말 좋아합니다. 그래서 Java 용 도구와 같은 마이그레이션이 있는지 궁금합니다. 그러한 도구가없는 경우 마이그레이션을 Java 프로젝트에서 사용하는 데이터베이스를 제어하는 도구로 사용하는 것이 좋은 생각입니까?
Hibernate의 SchemaUpdate를 사용하여 마이그레이션과 동일한 기능을 수행했습니다. 앱을 시작할 때마다 데이터베이스 구조를 검사하고 매핑과 동기화하므로 추가 rake : db : migrate 단계가없고 앱이 실행중인 데이터베이스와 동기화되지 않을 수 있기 때문에 실제로 마이그레이션보다 쉽습니다. 에 맞서. Hibernate 매핑 파일은 Rails 마이그레이션보다 복잡하지 않으므로 앱에서 Hibernate를 사용하지 않았더라도이를 활용할 수 있습니다. 단점은 롤백, 마이그레이션, DML 문 실행만큼 유연하지 않다는 것입니다. 주석에서 지적했듯이 테이블이나 열도 삭제하지 않습니다. Hibernate 초기화 프로세스의 일부로 수동으로 수행하는 별도의 메서드를 실행합니다.
Rails 마이그레이션을 사용할 수없는 이유는 모르겠습니다. 스택 (Ruby, Rake, Rails)을 설치하는 데 신경 쓰지 않는 한 앱을 만질 필요가 없습니다.
A의 기능 비교 사이
- 플라이 웨이
- Liquibase
- c5-db-migration
- dbdeploy
- Mybatis
- MIGRATEdb
- migrate4j
- dbmaintain
- AutoPatch
이것은 귀하와 다른 사람 이 작업에 적합한 도구 를 선택할 수있는 좋은 출발점이 될 것입니다.
Liquibase 는이 도메인의 또 다른 프로젝트입니다.
Grails 에는 Rails에서 패턴 화 된 dbmigrate 유틸리티가 있습니다. Groovy에서 구현되었으므로 모든 Java 프로젝트에서 사용할 수 있어야합니다.
같은 질문을 조사하면서이 게시물을 보았습니다. 아직 최고의 도구 또는 접근 방식에 대한 결론에 도달하지 않았지만 지금까지 다른 답변에서 언급되지 않은 한 가지 도구는 dbdeploy 입니다. 이 도구에 대한 비교를 읽고 싶습니다.
기타 관련 리소스 : Martin Fowler 및 Pramod Sadalage의 Evolutionary Database Design 에 대한 다소 오래된 게시물 , Refactoring Databases : Evolutionary Database Design by Sadalage and Scot Ambler.
Java 용 레일과 유사한 마이그레이션의 두 가지 독립적 인 구현도 있습니다.
1) Carbon Five 에서 Maven 기반 마이그레이션
2) Hashrocket의 Ant 기반 작업 (개인적으로 가장 좋아하는 작업)
이 패키지는 Maven과 Ant를 위해 특별히 작성되었지만 일부 작업을 통해 거의 모든 것에 적용 할 수 있습니다.
Migrate4j 는 후보처럼 보이지만 프로젝트는 프로덕션 용도로 충분히 성숙해 보이지 않습니다.
또한이 DbMaintain 처음에 내부 개발 된 Unitils 하지만 지금은 전용 프로젝트는. 우리는 현재 그것을 사용하고 있으며 매우 만족합니다 (좋은 대안이 없다는 것을 의미하지는 않습니다). 내 데이터베이스 + 마이그레이션 북마크 에 더 많은 것을 나열합니다 (Maven을 지원하는 도구에 중점을 둡니다).
참고 URL : https://stackoverflow.com/questions/131020/migrations-for-java
'developer tip' 카테고리의 다른 글
사용자 권한을 처음 부여 할 때 왜“GRANT USAGE”가 생성됩니까? (0) | 2020.09.19 |
---|---|
태그 시스템 구현 방법 (0) | 2020.09.19 |
모바일 장치에서 HTML 드래그 앤 드롭 (0) | 2020.09.19 |
Github Commit RSS 피드 설정 (0) | 2020.09.19 |
문자열을 변수 이름으로 변환하려면 (0) | 2020.09.19 |