-
Notifications
You must be signed in to change notification settings - Fork 215
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
7.0.11 gives __EFMigrationsHistory already exists
on dbContext.Database.Migrate();
#2878
Comments
Given the only change in 7.0.11 is #2787 and this is related to schema I suspect migrations on a different schema now always default to |
@roji Sorry to tag you, but have you seen this issue? |
Yes, but I'm currently busy with other urgent matters... I'll try to take a look at this as soon as I can. |
As a temporary workaround you can explicitly set the MigrationHistoryTable schema. We do something like this:
It's not very elegant, but it works. |
Thanks @zlepper this works! |
Thanks @zlepper this helped me also in Npgsql Version 6.0.10 (Npgsql.EntityFrameworkCore.PostgreSQL Version 6.0.22). |
I am seeing the same issue with version 8.0.0 Here are the steps to reproduce this issue.
CREATE ROLE mydbusr WITH
LOGIN
NOSUPERUSER
NOCREATEDB
NOCREATEROLE
INHERIT
NOREPLICATION
CONNECTION LIMIT -1
PASSWORD 'password';
CREATE DATABASE "MyDb"
WITH
OWNER = postgres
ENCODING = 'UTF8'
CONNECTION LIMIT = -1
IS_TEMPLATE = False;
CREATE SCHEMA mydbusr AUTHORIZATION mydbusr;
dotnet new classlib -o EfCoreBug
cd EfCoreBug
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL --version 8.0.0
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0.0
using Microsoft.EntityFrameworkCore;
namespace EfCoreBug;
public class MyContext : DbContext
{
public DbSet<MyEntity> MyEntities { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseNpgsql("Host=localhost;Username=mydbusr;Password=password;Database=MyDb");
}
public class MyEntity
{
public int Id { get; set; }
}
dotnet ef migrations add InitialCreate
dotnet ef database update
using Microsoft.EntityFrameworkCore;
namespace EfCoreBug;
public class MyContext : DbContext
{
public DbSet<MyEntity> MyEntities { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseNpgsql("Host=localhost;Username=mydbusr;Password=password;Database=MyDb");
}
public class MyEntity
{
public int Id { get; set; }
+ public string? NewColumn { get; set; }
}
dotnet ef migrations add AddNewColumn
dotnet ef database update You should get the following error output.
|
Thanks, just suffered this issue and added this code snippet to get around the issue. Only affects my databases where public isn't the main schema. |
This comment was marked as resolved.
This comment was marked as resolved.
3 similar comments
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
+1 |
Everyone, please don't post +1 comments, upvote (👍) the top post instead. |
Thanks ! It's works ! But what is function |
After updating from
7.0.4
to7.0.11
I get the error:Npgsql.PostgresException: '42P07: relation "__EFMigrationsHistory" already exists'
on runningdbContext.Database.Migrate();
from the program.cs in an winforms (core 7.0.11) application.My connect string looks like this:
"Host=localhost;Database=dev_copy;Username=postgres;Password=postgres; SearchPath = schema_prod"
After downgrading Npgsql back to
7.0.4
it works again as expected.The text was updated successfully, but these errors were encountered: