문제

에 새로운 작업을 시작했,우리는 모두 Java 응용 프로그램을 처리하는 대부분의 무거운 짐을 핵심 사업에서 논리,그리고 우리는 또한 레일 응용 프로그램의 과정을 처리하는 웹 인터페이스 서버입니다.이들 모두 동일한 데이터베이스에 액세스.

지금까지 대부분의 초점이되었습 Java 응용 프로그램,그리고 이와 같은 없 마이그레이션에는 레일을 프로젝트입니다.Sql 를 업데이트 공유 데이터베이스를 관리하는 파일에 다음과 같 변경합니다.sql.

당신이 상상할 수있는,이것은 다소 어려운 개발합니다.

내 초기 생각이었을 결합하는 코드베이스에 대한 자바 프로젝트 레일 응용 프로그램이 있기 때문에,종속가 및 관리 SQL 파일에는 소스입니다.그러나 나는 요청을 보려면 여기는 경우 다른 사람이 달려 있었 이 문제가 어느 정도의 성공입니다.

도움이 되었습니까?

해결책

한 가지 방법은 Rails 마이그레이션 도구를 사용하고 데이터베이스의 DDL 파일을 생성하고 Hibernate를 사용하여 특정 데이터베이스 엔티티와 관련된 Java 객체를 업데이트하는 것입니다. Java 측에서 데이터베이스 변경을 관리하는 방법이나 ORM을 사용 하는지는 실제로 말하지 않지만 두 가지 작업과 동기화 할 수 있습니다.

또는 다른 방법으로 가서 Java 정의가 레일 측면의 변경 사항을 제어하게 할 수 있습니다.

이 작업을 성공적으로 수행하는 열쇠는 두 플랫폼 중 하나를 "기본 데이터베이스 모듈러"로 선택하고 해당 모델을 다른 플랫폼으로 마이그레이션하는 프로세스를 개발하는 것입니다. 두 가지 모두에서 변경을 허용하면 두통이 발생합니다.

다른 팁

우리는 우리와 비슷한 프로젝트 구조:공유된 데이터베이스 모두와 함께 java 및 레일 응용 프로그램으로 클라이언트입니다.내가 주장하고있어를 사용하여 레그 메커니즘을 처리하기 위한 데이터베이스가 변경됩니다.그것의 비트 레일호,그리고 일부 의지하는 데 도움이지만 java 팀은 또한 쓰기에 자신의 마이그레이션입니다.

우리는 어떤 경우에 우리가 사용하는 곳에 저장된 절차 및 데이터베이스 특정 열 유형,그래서 우리는 변경된 레일 환경입니다.rb 을 사용하여 sql 을 만들기 위한 테스트 데이터베이스입니다.

  # Use SQL instead of Active Record's schema dumper when creating the test database.
  # This is necessary if your schema can't be completely dumped by the schema dumper,
  # like if you have constraints or database-specific column types
  config.active_record.schema_format = :sql

플러스 측면에서 관리하기 sql 마이그레이션을 만드 레일을 테스트하고 설정를 위해 깨끗한다.단점은 일부 마이그레이션 파일은 그냥하지 않는(예를 들어,사용할 수 없습니다 마이그레이션 DSL 를 생성하는 절차를 저장 그래서 당신은 이러한 실행%{blah}에서 당신의 마이그레이션).

그냥 계속 기억 통신 라인 beteen 됩니다.나는 사실을 좋아하는"모자 생산을 배포:마이그레이션"업데이트하게 생산 데이터베이스는 죽은 간단합니다.

감사합니다 Steve

Java 측에서는 최대 절전 모드를 사용하고 있지만 수동 SQL 업데이트 프로세스가 있습니다.

나는 그것이 하나 또는 다른 사람이어야한다는 데 동의합니다. 데이터베이스 만 관리하기 위해 또 다른 응용 프로그램 / 모듈 / 코드베이스를 추가하는 것이 더 잘못된 아이디어입니다.

감사

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top