2011-04-27 40 views
0

我们构建了一个需要SQL Server存储数据的桌面(Windows)应用程序。现在,如果我们在数据库方面做了任何更改,我们需要备份用户应用程序的数据库,修改我们的更改并将其恢复回用户的应用程序。在SQLServer中导入/导出数据的实用程序

我们写代码的备份恢复& .bak文件在正常工作中的应用。

但现在,我们需要建立一个在线工具,其中用户可以上传数据文件,那么我们的变化可能ammend,然后他们可以下载更新数据恢复。

请给我一些想法来实现这个功能。

P.S .:我在我认为是正确的区域发布了这个问题。请更改为相应的区域(如果需要)

谢谢!

+0

通过“更改”,你的意思是模式更改或数据更改? – 2011-04-27 09:29:33

+0

@FreshCode:架构变化 – 2011-04-27 09:43:37

回答

0

Migrator.NET写迁移到更新的架构和部署架构更改为可运行的更新您的客户。

下面是来自Getting Started documentation一个例子:

using Migrator.Framework; 
using System.Data; 

namespace DBMigration 
{ 
     [Migration(20080401110402)] 
     public class CreateUserTable_001 : Migration 
     { 
       public void Up() 
       { 
         Database.CreateTable("User", 
           new Column("UserId", DbType.Int32, ColumnProperties.PrimaryKeyWithIdentity), 
           new Column("Username", DbType.AnsiString, 25) 
           ); 
       } 

       public void Down() 
       { 
         Database.RemoveTable("User"); 
       } 
     } 
} 

有添加/删除列漂亮的包装,但你可以执行任意SQL。

0

为什么不提供您的用户,他们可以运行该脚本(或者你将它作为设置的一部分,或者有一个简单的工具来运行脚本)的数据库应用更改。

通常情况下,当你在你的开发环境使数据库方面的变化,产生了相同的脚本,并保持它们,直到你释放你的应用程序的新版本。

+0

这不是客户可以接受的,因为这意味着将脚本触发到100个客户端用户。 – 2011-04-27 10:23:22

+0

@Xor power,这意味着每个用户都有应用程序和数据库的副本。用户如何获得新版本的应用程序?如果它是一个设置,那么你可以在你的设置中有一个自定义动作来运行升级数据库的脚本。如果您以zip(或一组文件)的形式提供新版本,则应将升级逻辑内置到应用程序代码中。例如应用程序启动时可以检查什么是数据库版本(您必须在某个表中保留版本信息),并可以运行嵌入式脚本来升级数据库。相信我,从用户体验和支持角度来看,自动化解决方案要好得多。 – VinayC 2011-04-28 04:05:15

相关问题