在运行时应用迁移的缺点是什么?

问题描述 投票:1回答:1

摘录自EF Core documentation

[某些应用可能希望在启动时在运行时应用迁移,或者首轮。使用Migrate()方法执行此操作。

myDbContext.Database.Migrate();

警告

这种方法并不适合所有人。虽然它对于带有本地数据库,大多数应用程序将需要更强大的部署策略,例如生成SQL脚本。

此方法的主要好处似乎是使部署过程保持简单。该文档指出,这对于大多数应用程序来说还不够。为什么不呢?

在运行时应用迁移的缺点是什么?

asp.net-core entity-framework-core database-migration ef-migrations
1个回答
0
投票

原因:

  • 迁移可能会导致数据库丢失数据。
  • 您可能在过时的分支上工作。
  • 迁移可能会失败。
  • 良好的应用设计不会创建或删除表。

迁移可能会导致数据库丢失数据。像您的迁移可能会删除一些表。并非所有环境都希望这样做。这在您的开发环境中可能是安全的,但在生产环境中则非常危险。这是某些应用程序无法自动迁移的主要原因。

现在我们通常使用git或其他版本控制工具进行编码。切换分支机构并与他人协作更简单。但是通常情况下,我们的数据库不会使用您的代码切换分支。如果您切换到另一个分支并仅运行该应用程序,则迁移可能会破坏数据库并使您难以恢复。

由于连接原因或数据冲突,迁移可能会失败。如果自动迁移数据库,将不会受到警告,这很危险,因为服务在线时会出现更大的问题。

总而言之:应用迁移是危险的动作。除非您可以确保一切正常,否则不建议您自动更新数据库。

© www.soinside.com 2019 - 2024. All rights reserved.