레일과 자바에서 루비를 모두 사용합니다. 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 는이 도메인의 또 다른 프로젝트입니다.
답변
답변
나는 같은 질문을 조사하면서이 게시물을 보았습니다. 아직 최고의 도구 나 접근 방식에 대한 결론에 도달하지 않았지만 지금까지 다른 답변에서 언급되지 않은 도구 중 하나는 dbdeploy입니다. 입니다. 이 도구의 비교 내용을 읽고 싶습니다.
기타 관련 리소스 : Martin Fowler 및 Pramod Sadalage의 Evolutionary Database Design 에 대한 다소 오래된 게시물 , Refactoring Databases : Evolutionary Database Design by Sadalage 및 Scot Ambler.
답변
Java 용 레일과 유사한 마이그레이션의 두 가지 독립적 인 구현도 있습니다.
1) Carbon Five 에서 Maven 기반 마이그레이션
2) Hashrocket의 Ant 기반 작업 (개인적으로 가장 좋아하는 작업)
이 패키지는 Maven과 Ant를 위해 특별히 작성되었지만 일부 작업을 통해 거의 모든 것에 적용 할 수 있습니다.