.NET 6 Web API发布至Ubuntu服务器后PostgreSQL数据库未生成求助
解决Code First部署到Ubuntu后PostgreSQL数据库未生成的问题
是的,你需要在Ubuntu服务器上执行EF Core的迁移命令来生成生产环境数据库,Visual Studio发布过程不会自动帮你执行update-database操作。具体步骤如下:
- 登录到Ubuntu服务器,导航到你的API项目发布后的部署目录
- 确认服务器已正确安装.NET 6 SDK(你已说明已安装,可跳过此步)
- 执行迁移命令:
如果你的DbContext所在项目是类库而非Web项目,需要指定项目路径:dotnet ef database updatedotnet ef database update --project ./你的类库项目名称.csproj
另外,也可以通过代码实现启动时自动迁移,但不推荐在生产环境使用,因为可能导致意外的 schema 变更。如果要测试使用,可在Program.cs中添加以下代码:
using (var scope = app.Services.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService<你的DbContext类>(); dbContext.Database.Migrate(); }
内容的提问来源于stack exchange,提问作者Niki Gagliardi
相关产品推荐
相关产品推荐

