我有一个.NET核心应用程序,我正在运行的AWS弹性容器服务(ECS)。-应用程序运行在两个不同的实例上。-数据库是SQL服务器
该应用程序在启动时运行数据库迁移,运行非常好。但是我不得不迁移大量的数据,这意味着迁移需要更长的时间。这导致了数据的重复移动。
之所以会发生这种情况,是因为两个应用程序都首先检查数据库是否执行了迁移,然后都发现没有执行,然后都开始运行迁移,这需要时间。完成之后,它将迁移添加到数据库中。
人们是如何解决这个问题的?
可能的解决方案我和其他人已经想到了
外面的人是做什么的?我错过了什么明显的解决方案吗?
谢谢
发布于 2019-02-13 16:29:28
我们以前也让应用程序执行迁移,但即使是在多实例环境中的Microsoft 建议避免这种情况:
我们建议生产应用程序不应在应用程序启动时调用Database.Migrate。不应该从服务器场中的应用程序调用迁移。例如,如果应用程序已经部署到云端,则使用扩展(应用程序的多个实例正在运行)。 数据库迁移应该作为部署的一部分,并以一种受控的方式进行。
就像每件事一样,解决问题也有不同的方法。我们的团队很小,所以我们通过EF工具生成迁移脚本,然后作为部署/维护例程的一部分手动运行它们。当然,如果您的流程值得的话,这是可以自动化的。
https://stackoverflow.com/questions/54670329
复制相似问题