微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

处理数据库模式中的更改

我正处于开发一个应用程序的初始阶段,希望能够在1000年内销售这个应用程序,这个应用程序的数量可能会达到数百个,但是无论哪种方式都会导致数据库模式更改的头痛。

我只是限制在一个windows / .net / sql server环境中,因为我们的许多客户将自行托pipe我在他们的web服务器上构build的应用程序,并且在他们的服务器上安装的额外位数永远不会很好,总是有一个数字投诉/丢失业务。 所以sqlalchemy出来了,因为它运行在python中。

我所追求的是一个工具,可以让我在应用程序的各个版本之间轻松迁移。 我find了migrator.net,之前我用过它,但是从来没有用过,因为开发团队似乎每年只能在这个平台上工作,而不是一个活跃的项目。

有什么替代方法可用?

我如何杀死我的移动应用程序?

WCF应用程序无法打开频道

一个服务附加到另一个截断文件

根据屏幕分辨率调整窗体控件的大小

任何capistrano可比的Windows / .net?

更新我忘了提及,我希望能够在持续集成环境中使用这个,所以虽然数据老兄和sql比较是很好的GUI工具,我真的自动化。

自己的窗体边框样式

单声道的PdfSharp

WPF AutomationPeer.Initialize定期抛出NullReferenceException

垂直滚动gridview XAML windows store应用程序

制作Autorun应用程序的最佳解决scheme?

如果您使用Visual Studio 2010 Ultimate / Premium Edition或Visual Studio Team / Database Edition 2008,则可以在Visual Studio中找到所需的全部内容

您可以比较两个数据库(例如,dev和prod)并生成用于修改数据的sql脚本。 您可以轻松排除比较中的某些表格或某些列。 您还可以检查结果并排除脚本生成中的一些条目。 因此,可以轻松而灵活地生成可用于部署数据库中的更改的脚本。 您可以从结构中分离 比较两个数据库的数据模式比较 )。 只需进入“数据”菜单并选择“模式比较”或“数据比较”。 您可以阅读http://msdn.microsoft.com/en-us/library/dd193250.aspx和http://msdn.microsoft.com/en-us/library/dd193261.aspx以了解它是如何工作的。 因此,您可以使用prod中的数据来刷新dev中的数据,或者生成将prod数据库修改为dev数据库最后一个版本的脚本。

我开始在Vinsual Studio Team Edition 2008中使用此功能,并继续使用Visual Studio 2010 Ultimate。 这正是我需要的。 在某些情况下,我需要修改一些脚本,但是有95%的工作是在Visual Studio中完成的。

如果你不能VS2010旗舰版或高级版,并且没有VS2008团队或数据库版本,我建议你去看一些http://www.red-gate.com/的产品(比如http://www.red-gate.com /products/sql_Compare/index.htm )与关闭功能

Red_Gate的sql Compare可以保持两个数据库的同步。

不过,我认为最重要的是将您的更改保留在特定版本的Source Control中。 对待你的sql代码就像任何其他代码属于一个版本。 切勿让开发人员使用GUI进行更改,所有更改都应作为版本的一部分编写脚本并放入源代码管理。 一旦你这样做,如果有人在版本1,你想升级到版本2.3,那么你只需要按顺序运行每个版本的sripts,你将有2.3版本的数据库

升级脚本添加到您的应用程序。 如果您还没有,那么创建一个设置表,您可以在其中存储数据库的当前模式版本。 例:

CREATE TABLE SETTINGS(KEY VARCHAR(255),VALUE VARCHAR(255)); INSERT INTO SETTINGS VALUES('version','1');

当启动应用程序时,查询此表(如果它不存在,则不安装以前的版本),并检查版本。 我只能维护版本1到版本2的单独升级脚本; 版本2到3; 3到4等等。 我不会直接维护版本1到3左右的升级脚本,通常不需要。 升级脚本通常包含ALTER TABLE和CREATE TABLE语句,但有时也包含UPDATE。

sql Compare的专业版本有一个可用于持续集成的命令行。 这是记录在这里: http : //downloads.red-gate.com/HelpPDF/ContinuousIntegrationForDatabasesUsingRedGatesqltools.pdf

理想情况下,您可以在源代码控制中维护模式,以充分利用这一点,您可以使用sql代码管理来完成这一任务 。

sql Compare可以在两个给定的数据库之间迁移,但是源代码控制提供了一个更成熟的开发过程 。

如果这没有达到你要找的,请评论这个“答案”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐