2014-08-31 3 views
0

나는 application_version1.0.0이 있습니다. 이 응용 프로그램 (버전 1.0.0)을 실행하려면 데이터베이스에 연결해야합니다 (데이터베이스의 스키마에는 db_v1.0.0 버전이 있음).클라이언트 서버 응용 프로그램 및 공유 데이터베이스

내 응용 프로그램에 대한 일부 기능을 추가했습니다 (일부 테이블을 변경했는데 다른 테이블을 제거했습니다 ..). 이제 내 응용 프로그램에는 버전 1.0.1이 있고 데이터베이스에는 버전 1.0.1이 있습니다.

내가 응용 프로그램 버전 1.0.1을 필요로 할 때 버전 1.0.0으로 데이터베이스에 연결할 수 있으며 응용 프로그램이 올바르게 실행됩니다.

예 : : 이제

Database_version_1.0.0: the customer table have this fields (id, name); 
Application_version_1.0.0: getPIDCustomer() {select name from customer ;} 

:

Database_version_1.0.1: the customer table have this fields (id, PID, name). 
Application_version_1.0.1: getPIDCustomer() {select name, pid from customer ;} 

내가 이전 버전의 데이터베이스 버전 1.0을 열 수있는이 응용 프로그램에서 내 응용 프로그램에 잊지 마세요 나는 데이터베이스에 어떤 요청을해야합니다. 0

어떻게 수정하여 내 application_version_1.0.1이 database_version_1.0.0에서 작동하도록 할 수 있습니까?

답변

0

나는 비슷한 문제가 과거에 발생했습니다.

1 단계 : 데이터베이스 버전이 데이터베이스에 있어야합니다. 나는 위엄있는 행렬을 보여 준다. 2 단계 : 일단 응용 프로그램을 실행하면 db 버전을 읽습니다. 다른 db 버전의 데이터가 다를 때마다 코드를 통해 처리해야합니다. 많은 노력이 필요합니다.

더 많은 elegan 방법이 있지만 항상 적용되는 것은 아닙니다. 응용 프로그램의 성격에 따라 다릅니다. 하나는 데이터를 검색하기 위해 함수 또는보기를 가지는 것입니다. 당신의 getPIDCustomer 예를 들어 ,() 서로 다른 DB 버전에서

select * from viewpidcustomer 

당신은 더 많거나 적은 열을 가질 수 있습니다. 열이 있는지 여부를 확인하고 가능한 경우 기본값을 지정하거나 오류를 발생 시키려면 코드를 사용해야합니다.

관련 문제