2009-07-19 7 views
2

이전에이 질문을 받았는지 확실하지 않습니다. 나는 약간의 검색을했지만 적절한 것은 나타나지 않았다. 이제 문제가됩니다 :데이터베이스의 변경 내용을 추적하십시오.

이전 응용 프로그램을 다른 프로그래밍 언어로 마이그레이션하려고합니다. 우리가 가지고있는 유일한 요구 사항은 데이터베이스 구조를 안정하게 유지하는 것입니다. 그래서 내 데이터베이스 스키마에는 변화가 없다. 응용 프로그램의 나머지 부분에 대해서는 기본적으로 이전 코드를 다시 사용하지 않고 처음부터 모든 것을 다시 구현합니다.

내 아이디어 : 새로운 코드가 사용자가 특정 작업이나 워크 플로를 수행 할 수 있는지 확인하기 위해 데이터베이스의 상태를 캡처 한 다음 그 상태를 캡처 한 다음이 데이터를 사용하여 단위 테스트를 만들 수 있습니다. 누구든지 이러한 변화를 추적 할 수있는 우아한 솔루션을 알고 있습니까? 데이터베이스 복사 (10GB 초과)는 꽤 비쌉니다. 또한 사용자가 이러한 샘플 작업을 수행 할 기존 응용 프로그램의 코드를 수정할 수 없습니다. 데이터베이스 수준으로 유지해야합니다.

내 데이터베이스는 Oracle 10g입니다.

+1

여기가 비즈니스 로직과 애플리케이션을 분리해야하는 좋은 예입니다. – jva

+0

참. 적어도 그들은 지금 이것을 깨달았다. – sebastiangeiger

+0

원래 응용 프로그램의 소스 코드를 가지고 있습니까? – stukelly

답변

2

trace으로 이전 응용 프로그램 동작을 캡처 한 다음 새 코드에 대해 변경 내용의 유효성을 검사 할 수 있습니다. 그러나 솔직히 원래 응용 프로그램의 입력과 출력이 상태가 유지되지 않는다는 보장이 없으므로 데이터 수정 및 모방을 캡처하여 새 응용 프로그램을 작성하는 것은 매우 어려운 작업입니다 (즉, 이전 응용 프로그램 특정 입력을받은 처음 1,000,000 번 작업과 똑같은 작업을 수행 할 수 있으며 1,000,001 번째 실행에서 완전히 다른 작업을 수행 할 수 있습니다.)

가장 좋은 방법은 비즈니스 요구 사항부터 다시 시작하여 이전 응용 프로그램을 사용하는 것입니다. 기능적 참조.

+0

맞아요,하지만 이전 프로그램을 관찰하여 수집 한 데이터에만 의존하지 않고 있습니다. 이는 이전 애플리케이션에 대한 통찰력을 높이고 요구 사항 엔지니어링에서 간과 된 것을 발견하는 방법 일뿐입니다. – sebastiangeiger

2

Oracle Flashback Queries을 살펴보십시오.

과거 데이터를 반환하는 쿼리를 실행할 수 있습니다. 기간은 제한되어 있지만 매우 유용 할 수 있습니다.

+0

플래시백 쿼리가 내 엉덩이를 확실히 몇 번 저장했습니다. –

1

10g에서 유일한 방법은 FLASHBACK queries.in 11g에서 RAT (Real Application Testing)를 사용하여 수행 할 수 있습니다. RAT는이 시나리오와로드 및 볼륨 테스트에 매우 유용합니다.

관련 문제