2013-06-28 2 views
-3

내 프로젝트에는보기 및 저장 프로 시저와 같은 많은 개체가 자주 포함되어 있습니다. 이제는 실제로 몇 줄 밖에 변경하지 않았지만 변경된 객체의 완전한 소스 코드가 포함 된 모든 업데이트마다 새 SQL 스크립트를 만들어야합니다. 대규모 코드 중복으로 이어지고 이러한 변경 사항을 검토하기가 어려웠습니다.비 데이터 구조 (보기, 저장 프로 시저 등)에 대한 코드 중복을 피하는 방법

나는 뷰나 프로 시저 같은 모든 개체에 대해 SQL 스크립트의 실제 버전을 하나만 갖고 데이터베이스를 다시 배포 할 때마다이 개체를 다시 만들고 싶습니다. 결과적으로 뷰 또는 프로 시저를 변경해야 할 때마다 새 업데이트를 만드는 대신 기존 소스 파일 (예 : Java 또는 C 프로그래밍)을 변경할 수있었습니다.

이동 경로를 사용하여 데이터베이스를 마이그레이션 할 때마다 일부 스크립트를 실행할 가능성이 있습니까?

+2

... –

+0

Tushar 당신은 분명하지 않다 설명해주십시오 수 있으며, 좀 더 자세한 내용을 제공하기 위해 노력하겠습니다 –

답변

0

나는 왜 그렇게 많은 downvotes을 가지고 있는지 모르겠다. 그것은 완벽하게 이해할 수 있고 유효한 질문이다. 이는 열린 질문과 매우 흡사하기 때문일 수 있습니다. Migrating Stored Procedures with Flyway

실제로이 문제에 대해 실제로 추진하고 있습니다. 우리는 개발 및 테스트를 위해 플라이 웨이를 사용 해왔다. 그러나 우리는 procs/triggers/views (p/t/v)를 사용해야하는 시점에 이르렀고 이전에 어떻게했는지, 그리고 flyway를 사용해야하는 방법과 근본적인 관계가 끊어지기 시작했습니다. 긴장되다.

주어진 데이터베이스 객체 (프로 시저라고 가정 해 보겠습니다.) 이전에는 하나의 소스 파일이있었습니다. 그리고 proc 'n'번 변경해야 할 경우 VCS에 동일한 파일의 'n'버전이 있습니다. 차이점 도구는 훌륭하게 작동합니다. IDE는 모두 이것을 이해합니다. 두 지점에서 일하는 두 명의 개발자가 proc 등을 변경하면 병합을 감지합니다. 알다시피, 오래된 학교.

그러나 이동 경로를 사용하면 'n'변경 사항이있는 모든 proc이 이제 'n'파일에 분산됩니다. 하나의 파일에 'n 버전'이있는 하나의 객체 대신에, "하나의 객체가 하나씩 변경되면서 하나의 객체에 하나의 객체가 있습니다". proc에 대한 변경 내역을 알고 싶다면 "proc_name"인스턴스에 대해 IDE에서 텍스트 검색을 수행해야합니다. VCS는 그것에 대해 아무 것도 모른다. Devs는 각각 자신의 브랜치에서 각각의 배포가 성공할 때마다 마이그레이션을 수행 할 수 있지만 proc에는 누락 된 업데이트가 남아 있습니다.

저는이 플라이 웨이에 대해 불평하는 것을 말하지 않고 있으며, 단순한 영역이 아니라는 것을 충분히 알고 있습니다. 나는 그것이 거의 풀릴 수 없다고 말하고 싶다.

우리는이 문제를 처리하는 방법을 계획하고 있으며 다른 사람들이 어떻게 처리했는지 알고 싶어합니다.

-1

반복 가능한 마이그레이션은 이제 Flyway 4.0에서 지원됩니다. 그냥 마이그레이션 폴더에 모든 버전 정보없이 "R"로 시작하는 SQL 파일을 추가 :

R__Blue_cars.sql 당신은 확인해야

, 스크립트가 마이그레이션 반복 될 수있다. 이것은 대개 DDL 문에서 "CREATE OR REPLACE"절에 의해 수행됩니다.

https://flywaydb.org/documentation/migration/repeatable

내가이 이해할 수없는