一段时间以来,我一直在寻找一个很好的解决方案来实现在Server紧凑型 3.5数据库上管理模式的思想。
我知道在SQL Server Express、Standard、Server上管理模式的几种方法,但是Compact不支持使用相同方法所需的必要工具。
有什么建议吗?
我应该扩展这一点,说这是为100+客户端包装软件。随着系统的变化,我需要向客户端发布更新脚本和新的二进制文件。我正在寻找一种很好的方法来发布这个文件,而不需要给客户机一个脚本文件并说“在SSMSE中运行这个文件”。大多数客户都做不到这样的事。
我的一个好友透露了一个关于如何处理我任务中的Server部分的部分脚本,但从未在Compact上工作过。看来我得靠自己了。
我认为我决定要做的是,它需要一个“极客周”来完成,就是编写一个类似于WiX和NAnt工作方式的工具,这样我就可以编写一个过于热心的XML文档来处理这项工作。
如果我认为这是值得的,我将在CodePlex和/或代码项目上发布它,因为我使用了这两个站点来更好地理解我过去做过的工作的概念,我认为可能值得回报一点。
2010年3月5日编辑:
如果有人愿意“命名”该项目,我将把我为MS编写的肮脏/讨厌的版本上传到CodePlex,这样我们就可以开始删除SQLCompact的版本了。尽管我认为,随着我计划的初始应用程序的下一次修订,我将放弃SQLCompact并使用XML文件进行存储,因为软件正在从Installable包转换为Silverlight应用程序。Silverlight只是提供了一个更好的访问策略。
发布于 2010-04-28 02:56:58
我目前正在调查Migrator.Net。这允许您在C#中直接向数据库写入称为迁移的更改。
这些迁移可以包含所有内容,从简单的表添加/删除、列修改到复杂的数据更新代码。
当应用程序启动时,它可以验证数据库当前的版本,并应用更新它所需的任何迁移。所有这些都是自动处理的。运行此更新的代码非常简单,如:
Assembly asm = Assembly.Load("LocalModels.migration");
Migrator m = new Migrator("SqlServerCe", "Data Source=LocalModels.sdf", asm, false);
m.MigrateToLastVersion();对于,我遇到了一些小问题(假设默认模式是dbo)。但我不认为修复它们会太困难。
发布于 2009-03-31 03:51:07
一些随机的想法(但不确定我是否能完全回答)
发布于 2009-05-05 22:44:49
如果您的关键条件之一是有效地在一个小管道上工作,那么唯一真正的选择是存储一个DB Schema版本(可能以某种方式绑定到您的CMS中的脚本中),并且当需要更新时,更改脚本将通过线路发送并按顺序应用。您可能也希望在DB中保存应用这些脚本的日志,以便优雅地处理断开连接、重新启动和其他潜在的严重问题。
https://stackoverflow.com/questions/699884
复制相似问题