客户端服务器应用程序和sharead数据库

时间:2014-08-31 23:19:29

标签: database client-server database-migration concept

我有一个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一起使用?

1 个答案:

答案 0 :(得分:0)

过去我遇到过类似的问题。

步骤1:您的数据库版本必须是...在数据库中。我eman,一张桌子排成一排。 第2步:运行应用程序后读取db版本。每次您在不同的db版本中都有不同的数据时,您必须通过代码处理它。这需要付出很多努力。

还有更多的方式,但并不总是适用。这取决于您的应用程序的性质。 一种是具有反转数据的功能或视图。 例如,在你的getPIDCustomer()中你可以

select * from viewpidcustomer

在不同的db版本中,您有更多或更少的列。 您必须处理代码以查看列是否存在,如果不可能,则指定默认值或引发错误。