我开发了一个具有厚客户和稀晶组件的应用程序。我们还版本的数据库以使模式更改导致其自己的版本编号,并且可以应用更改脚本。但是,数据库更改并非总是会随着厚距离变化而逐步发生。是的,今天的数据库更改可能会添加一列,并且需要在厚的客户中添加A,但是明天的数据库更改可能会在不需要任何外部更改的存储过程中解决错误。当某些向后兼容而有些不兼容时,我如何编码厚客户以测试它是否与特定数据库版本兼容?

在任何人都在乎的人,我们的应用程序是与SQL Server集成的.NET应用程序,但这似乎更像是一个版本的问题,而不是平台问题。除非有特定平台的解决方案...

有帮助吗?

解决方案

您可以创建一个表格,例如。带有两个字符串列的元数据,并在当前版本的架构中放置一个条目(或更多条目)。我想您现在做类似的事情。

并将版本分为两个数字(例如主要/次要方案)。当您以非靠背方式更改模式时,您就会增加主要版本。向后兼容更改后,您只需更新次要版本即可。

App使用专业来检查它是否与当前模式兼容,并使用Major+Minor来检查是否可以/需要更新模式。

我认为这是大多数应用程序使用的解决方案。

其他提示

您可以采用主要/次要版本编号方案吗?

主要数字的更改意味着客户需要更新,而次要数字的变化则不会。

有了任何这些,版本号总是在增加。

如果数据库知道所需的最小客户端版本,并且客户端知道所需的最小数据库版本,则是一个简单的检查,可以确定需要升级的内容(如果有的话) - 现在,您是否将逻辑封装在存储过程中,或代码,这是您的决定...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top