【问题标题】:How to downgrade Asp.Net Identity V2.0 to V1.0?如何将 Asp.Net Identity V2.0 降级到 V1.0?
【发布时间】:2018-03-21 15:58:41
【问题描述】:

我最近将 Asp.Net Identity V1.0 升级到了 V2.0。因此,在 Identity 数据库中添加了更多列,例如 Email、IsEmailConfirmed 等,而不会丢失任何数据。

我想知道有没有什么方法可以从 Asp.Net Identity V2.0 降级到 V1.0 而不会丢失任何数据。

我已经厌倦了很多方法,但我无法在不丢失数据的情况下检索 Identity V1.0 数据库。花了将近 3 天的时间寻找好的教程/博客以进行降级活动,但找不到。

非常感谢任何帮助。

【问题讨论】:

    标签: asp.net vb.net entity-framework asp.net-identity-2


    【解决方案1】:

    我假设没有源代码控制或备份?

    您可以做的一件事是使用code first migrations

    1) 打开您的解决方案的身份版本 1。如果找不到,就用 Identity Version 1 做一个新项目。

    2) 从控制台,enable-migrations,然后是 add-migration -IgnoreChanges initialIdentity1,然后是 update-database。这将创建一个包含当前数据库状态快照的迁移。

    3) 升级到身份 2。

    4) 在控制台中,add-migration identity2update 后跟 update-database。这将创建一个具有差异的迁移,包括一个名为 Down() 的方法,该方法将包含向后移动所需的信息。

    5) 生成可用于向后移动的脚本:

    update-database -Script -TargetMigration initialIdentity1
    

    6) 将该脚本应用到您的数据库并降级 Nuget Identity 包。

    现在进行备份并将您的代码添加到源代码管理:)

    【讨论】:

    • 应该不言而喻(但我还是要说)。 如果您担心不丢失数据,请执行其他任何操作之前进行备份
    • @Steve Greene :身份数据库表包含用户的登录信息。在升级到 V2.0 之前和升级到 V2.0 之后,我可以使用我的登录凭据登录。一旦我降级到 V1.0,我就无法使用相同的凭据登录。我没有打扰其中的任何数据。我还有什么需要做的吗?
    • 嗯,我能想到两个可能的原因。您可能需要re-hash the passwords 或者某些密码规则可能不同(检查密码失败的返回码以进行验证)。否则,简单的方法是恢复:)
    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多