2017-02-25 127 views
0

在我appsettings.json:EF-核心与PostgreSQL的迁移错误

{ 
    "Data": { 
    "DefaultConnection": { 
     "ConnectionString": "Host=localhost;Username={{postgres}};Password={{postgres}};Database={{asp_trial_api}};Port=5432;Pooling=true;" 
    } 
}, 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Default": "Debug", 
     "System": "Information", 
     "Microsoft": "Information" 
    } 
    } 
} 

在我startup.cs:

public void ConfigureServices(IServiceCollection services) 
     { 
      // Add framework services. 
      services.AddApplicationInsightsTelemetry(Configuration); 

      services.AddDbContext<WebAPIDataContext>(options => { 
       options.UseNpgsql(Configuration["Data:DefaultConnection:ConnectionString"]); 
      }); 

      services.AddMvc(); 
      services.AddSwaggerGen(); 
     } 

dotnet ef migrations add initial成功然而dotnet ef database update给了我以下错误:

28P01: password authentication failed for user "{{postgres}}" 

但是我在连接字符串中提供的用户名和密码是正确的。我已经在PostgresSQL中创建了一个名为asp_trial_api的空白数据库。

这里怎么回事?

回答

0

该问题似乎在连接字符串中有一些缺失的属性,如User IDServer。请尝试以下CS

"ConnectionStrings": { 
    "DefaultConnection": "User ID=postgres;Password={{pass}};Server=localhost;Port=1234;Database={{database}};Integrated Security=true;Pooling=true;" 
}, 

我有一个GitHub Repo与一个Postgres数据库的ASP.NET核心应用的工作示例。

+0

这看起来很有前途,但它给了我'没有连接可以做,因为目标机器主动拒绝它错误。可能的原因?我删除了数据库asp_trial_api并创建了一个新的api_trial并刷新了所有内容。 – Nitish

+0

服务器端口和用户名是否在连接字符串中正确配置?我也有同样的问题,但知道'用户名'是正确的(在我的情况)。你可以仔细检查一下吗? –

+0

还替换我刚刚提供的连接字符串,修改值并查看它是否有效! –