2014-08-31 6 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

Как это изменить, чтобы позволить моему приложению_version_1.0.1 работать с database_version_1.0.0?

ответ

0

У меня была аналогичная проблема в прошлом.

Шаг 1: ваша версия базы данных должна быть ... в базе данных. Я, Эман, стол. Шаг 2: после запуска приложения прочитайте версию db. Каждый раз, когда у вас есть разница в данных в другой версии db, вы должны обрабатывать ее с помощью кода. Это требует больших усилий.

Есть больше elegan way, но не всегда применимо. Это зависит от характера вашего приложения. У одного есть функции или просмотр для извлечения данных. Например, в вашем getPIDCustomer() вы можете

select * from viewpidcustomer 

В другой версии БД у вас есть больше или меньше столбцов. Вы должны передать свой код, чтобы увидеть, присутствует ли столбец или нет, и назначить значения по умолчанию или вызвать ошибку, если это невозможно.