使用实体框架在生产服务器上迁移

时间:2021-01-02 00:09:42

标签: asp.net-core entity-framework-core entity-framework-migrations

我想在我的服务器上应用迁移,但出现错误,要求我指定项目,但当我指定项目时,又出现另一个错误。

但是他们在开发中工作。

这是第一个错误:

dotnet ef database update
<块引用>

未找到任何项目。更改当前工作目录或使用 --project 选项。

这里是第二个:

dotnet ef database update --project Devystri
<块引用>

/var/www/devystri/Devystri(1,1):错误 MSB4025:无法加载项目文件。根级别的数据无效。第 1 行,位置 1。
无法检索项目元数据。确保它是一个 SDK 风格的项目。如果您使用自定义 BaseIntermediateOutputPath 或 MSBuildProjectExtensionsPath 值,请使用 --msbuildprojectextensionspath 选项。

这里是我的迁移文件:

Migrations files

谢谢!

1 个答案:

答案 0 :(得分:1)

解决方案是在 Program.cs 中添加:

public static void Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();
            
            using (var scope = host.Services.CreateScope())
            {
                var db = scope.ServiceProvider.GetRequiredService<MyDbContext>();
                try
                {                    
                   db.Database.Migrate();

                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                
            }

            host.Run();
        }