Eclipse 응용 프로그램의 두 가지 다른 프로젝트에서 이동 경로의 두 가지 인스턴스를 작성했습니다.Java 응용 프로그램에서 다른 데이터 소스를 가리키는 이동 경로 인스턴스가 여러 개 있습니다
이들은 서로 다른 데이터 소스/2 diff 데이터베이스를 가리키고 있으며 별도의 src.main.resources.db.migration 패키지가 있습니다. 각 패키지에는 해당 데이터베이스에 대한 서로 다른 sql 파일이 들어 있습니다.
응용 프로그램을 시작할 때 Flyway는 하나의 프로젝트 (프로젝트가 처음 초기화 된)의 스크립트를 식별하고이 프로젝트의 스크립트를 다른 DB에도 실행합니다.
Flyway가 2 개의 데이터베이스를 동시에 업데이트 할 수 있습니까?
답장을 보내 주셔서 감사합니다. 그러나 이것이 Java 코드에서 어떻게 구현 될 수 있는지 설명해 주시겠습니까? 예를 들어 : Curretnly 나는 다음과 같은 방법을 사용하고 있습니다 ...
Flyway flyway = new Flyway();
InitialContext ictx = new InitialContext();
DataSource dataSource = (DataSource) ictx.lookup("DS-name");
flyway.setDataSource(dataSource);
flyway.setLocations("main.resources.db.migration");//location under first project
flyway.migrate();
Flyway flywaygen = new Flyway;
InitialContext ictx = new InitialContext();
DataSource dataSource = (DataSource) ictx.lookup("DS-name");
flywaygen.setDataSource(dataSource);
flywaygen.setLocations("main.resources.emlogis.migration");//location under second project
flywaygen.migrate();
문제는 flywaygen는 첫 번째 프로젝트 위치에서 찾고있다. 따라서 첫 번째 위치에 3 개의 SQL 스크립트가 추가되고 두 번째 스크립트에 두 개의 스크립트가있는 경우 두 번째 이동 경로 인스턴스는 마이그레이션 3이 완료되었다고 말합니다. 따라서 flywaygen은 main.resources.emlogis.migration 대신 main.resources.db.migration을 가리키고 있습니다.
안녕하세요, 답장을 보내 주셔서 감사합니다. 그러나 이것이 Java 코드에서 어떻게 구현 될 수 있는지 설명해 주시겠습니까? 예를 들어 : curretnly 나는 다음과 같은 방법을 사용하고 있습니다 ... – user1862868
하지만 어떻게 분리 된 위치를 지정할 수 있습니까? 현재 두 플라이 웨이 인스턴스가 같은 위치에 존재하기 때문에 flyway.setLocations ("main.resources.db.migration"); 그러나 두 가지 다른 프로젝트에서. 내 응용 프로그램이 flyway 만 시작하면 스크립트가 마이그레이션됩니다. 플라이 웨이 인스턴스는 아무 것도하지 않습니다. – user1862868
'flyway.setLocation()'을 다른 패키지로 가리키면 어떨까요? 당신의'dataSource' 정의가 데이터베이스 1과 2를 가르키고 있습니까? 샘플 코드에서는 그렇지 않습니다. – Kai