Asp.NET,MVC4。将数据从数据库迁移到新数据库

时间:2013-12-17 10:35:46

标签: c# sql-server asp.net-mvc-4 data-migration

这是我第一次在这个很棒的网站上提问,所以如果我违反了一些规则,请与我保持礼貌。

所以,这是我的问题,我在Asp.NET,MVC4中为某个客户开发了一个电子商务软件。然后,我为另一个客户开发了另一个电子商务,显然从最后一个开始。现在我有两个类似的电子商务项目,不同之处仅在于我必须为新客户添加的一些功能。问题是,现在,老客户也希望我更新他的电子商务,添加我已经为另一个添加的新功能;当然他不希望他的数据丢失,所以我必须将存储在旧数据库中的所有数据迁移到更新版本,使用不同的方案:例如,新方案有表,关系和列,不在旧的。

您建议我遵循哪个最佳解决方案? sql server中是否有函数,适用于此目的?框架是否包含一些解决方案? 提前谢谢,抱歉我的英语不好。如果我没有正确解释,我很乐意为您提供更多细节。

2 个答案:

答案 0 :(得分:0)

我不知道标准的ASP.NET或SQL Server开箱即用的解决方案。

一种解决方案是更新ASP.NET框架之外的数据库对象定义。有一些solid software options将比较两个数据库的对象定义,并生成SQL代码以使您的旧数据库与新数据库同步。

这个软件会做什么?例如,如果您有此表:

Table1 (id int primary key, col_one int)

你需要改变表格如下:

Table1 (id int primary key, col_one int, col_two nvarchar(50))

然后,数据库比较软件将执行或打印/显示如下所示的SQL代码:

Alter Table1 Add Column col_two

与往常一样,请务必在更改对象定义之前创建数据库备份!

您是否先使用代码?如果是这样,(至少暂时)禁用默认数据库迁移。可以找到更多herehere。如果发现任何架构更改,这将阻止ASP.NET删除并重新创建数据库(我认为接收错误比丢失所有数据更好。)

答案 1 :(得分:-1)

你必须构建一个小的控制台应用程序(在测试数据库中2000次之前尝试),从旧数据库中提取数据并使用正确的新ID将其推送到正确的位置以使数据存在于新数据库中结构

我建议你不要使用“id”bigint自动增量列,而是在第一个数据库中创建一个新的“guid”列,以便对每个数据进行独特的数据库独立识别,并使用guids而不是标识。

希望这会对你有所帮助。

祝你好运。

ps:对不起我的英语