繁体   English   中英

在Windows和Web App中处理数据库升级的最佳方法是什么?

[英]What's the best way to process database upgrades in Windows and Web App?

我知道如何创建脚本,但是知道如何在Windows应用程序或Web应用程序中实现这些脚本?

专注于Web应用程序,我所有的升级脚本都位于一个文件夹中,例如:\\ install \\ upgrade_1.4.99.sql,upgrade_1.4.101.sql等

C#代码使用c#版本检查当前代码数据库版本,并依次遍历每个sql脚本并运行该脚本。

如果用户不是管理员,则显示适当的消息,表明即将进行升级...类似的操作(注销用户)。 管理员(我们)被重定向到升级网页,并运行显示每个脚本成功或失败的脚本。 失败将回滚SQL事务。

基本上,我们有一个Web应用程序的多个实例,并且对用于管理的手动升级感到沮丧。

我们遇到的最突出的问题是数据升级...总是缺少基本数据传输,例如静态数据(配置设置等)。 因此,我们将RedGate用于架构和数据升级脚本。

那么,上述升级网站的方法是否是实现此目标的最佳方法? 我可以为Windows应用程序假设相同的过程吗?

另外,我确定读取脚本文件的方法可以得到改进。 我们只需读取sql文件中的每一行文本,然后等待“ GO”并将此字符串保存到数组中,然后再处理所有字符串。 (我没有写这段代码)。 该过程涉及一个大的Begin and Commit Trans ...只是不确定是否正确。

抱歉,不确定这里是否有太多问题。

实际上,您可以一次对SQL Server运行整个批处理脚本:

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/43e8bc3a-1132-453b-b950-09427e970f31

至于以任何一种自动化方式运行更新的最佳方式是什么? 我认为没有任何一种很棒的方法可以做到这一点。 最适合您的系统的一切。 不用说,但是请确保尽可能在单独的环境中测试脚本。

HTH,布莱恩

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM