5

我一直在寻找一个好的解决方案来实现在SQL Server Compact 3.5 数据库上管理模式的想法。

我知道在SQL Server Express 、SQL Server Standard、SQL Server Enterprise上管理架构的几种方法,但精简版不支持使用相同方法所需的必要工具。

有什么建议/提示吗?


我应该将其扩展为适用于 100 多个具有包装软件的客户。随着系统的变化,我需要将更新脚本与新的二进制文件一起发布到客户端。我一直在寻找一种体面的方法来发布它,而不必只给客户一个脚本文件并说“在 SSMSE 中运行它”。大多数客户都没有能力做这样的野兽。

我的一个朋友披露了一个关于如何处理我的任务中的 SQL Server 部分的部分脚本,但从未在 Compact Edition 上工作过。看来我要靠自己了。

我认为我已经决定要做的,并且需要一个“极客周”来完成,是编写某种工具,类似于WiXNAnt的工作原理,这样我就可以编写一个过分热心的 XML 文档处理工作。

如果我认为值得,我会在 CodePlex 和/或The Code Project上发布它,因为我已经使用了这两个网站来更好地理解我过去所做的工作的概念,我认为它回馈一点可能是值得的。


2010 年 5 月 3 日编辑:

如果有人愿意“命名”该项目,我会将我为 MS SQL 编写的肮脏/讨厌的版本上传到 CodePlex,以便我们可以开始破解 SQL Compact 的版本。虽然,我认为在我计划的初始应用程序的下一个修订版中,我将放弃 SQL Compact,而只使用 XML 文件进行存储,因为该软件正在从可安装包转换为 Silverlight 应用程序。Silverlight 只是提供了更好的访问策略。

4

4 回答 4

2

我目前正在研究Migrator.Net。这允许您直接在 C# 中将更改写入数据库,称为迁移。
这些迁移可以包含从简单的表添加/删除、列修改到复杂的数据更新代码的所有内容。

当您的应用程序启动时,它可以验证数据库当前所在的版本,并应用使其更新所需的任何迁移。这一切都是自动处理的。运行此更新的代码很简单:

Assembly asm = Assembly.Load("LocalModels.migration");
Migrator m = new Migrator("SqlServerCe", "Data Source=LocalModels.sdf", asm, false);
m.MigrateToLastVersion();

我在 Compact 支持方面遇到了一些小问题(它假定默认架构是 dbo)。但我认为修复它们不会太难。

于 2010-04-28T02:56:58.057 回答
0

一些随机的想法(虽然不确定我能完全回答)

  1. Microsoft Sync Framework是一种选择。一旦您在第一次部署之后(这似乎工作正常),我还没有机会完全了解它可以做什么。这里有一个 MSDN 站点

  2. 您可以在移动设备上执行脚本,但不能通过 SQL Management Studio 之类的工具,因此理论上您可以管理/维护 T-SQL 脚本,但缺点是 T-SQL 会很复杂(对于 CE 支持的语句)和我不知道“自动化”执行的方法 - 但同步框架可能有一些答案..

于 2009-03-31T03:51:07.087 回答
0

如果您的一个关键标准要在一个小管道上有效地工作,那么您唯一真正的选择是存储一个 DB Schema 版本(可能以某种方式与签入您的 CMS 的脚本相关联),并且当需要更新时,更改脚本通过网络发送并按顺序应用。您可能希望在您的数据库中保留日志以及正在应用的这些脚本,以便您可以优雅地处理断开连接、重新启动和其他可能令人讨厌的问题。

于 2009-05-05T22:44:49.020 回答
-2

SQL Server Management Studio 对您有用吗?
http://technet.microsoft.com/en-us/library/ms172933.aspx

于 2009-06-07T15:44:27.030 回答