【问题标题】:Asp.NET, MVC4. Migrating data from a database to a new oneASP.NET,MVC4。将数据从数据库迁移到新数据库
【发布时间】:2013-12-17 10:35:45
【问题描述】:

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

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

您建议我遵循的最佳解决方案是什么? sql server中是否已经有适合该目的的功能?该框架是否包含一些解决方案? 在此先感谢,并为我糟糕的英语感到抱歉。如果我没有正确解释,我很乐意为您提供更多详细信息。

【问题讨论】:

  • 当您说不同的方案时,您是在谈论数据库模式概念吗?告诉我

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


【解决方案1】:

我不知道标准的 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 删除并重新创建您的数据库(我认为接收错误比丢失所有数据要好。)

【讨论】:

  • 谢谢你,迈克,我要试试这些软件,希望没有任何灾难。我没有先使用代码。对此有何建议?无论如何,再次感谢你,干杯。
  • @AleGiovane 因为您没有使用 Code First,所以您不必担心 MVC 数据库初始化程序会丢弃您的数据。我认为你最好的选择是上面的 - 生成数据库对象定义差异并从那里开始。
  • 再次非常感谢,迈克
【解决方案2】:

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

我建议您不要使用“id”bigint 自动增量列,而是在第一个数据库中创建一个新的“guid”列来唯一地识别每个数据的数据库独立标识,并使用 guid 而不是指向数据本身身份证。

希望对你有所帮助。

祝你好运。

ps:我的英语也很抱歉

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    相关资源
    最近更新 更多