Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Save migration info in separate DB schema
When creating a code-first solution in dot net core using Visual Studio, you manipulate the database by changing model classes and migrating the changes.
I can set the schema for tables that I create, but how do I set a schema for the migration table itself? Currently it defaults to 'dbo'. Is it even possible? Unlike my model classes that become tables, there is no correlating migrations table class that I can add data annotations to provide the schema name.
Edit: To be clear, I'm talking about the table __EFMigrationsHistory
that is created when first running Update-Database
in the package manager console.
An answer implies I could change the default schema used, but the schema for the migration table isn't the default schema for the solution so I'd prefer not to.
1 answer
If you want to use a custom entity framework migration table, you can set it when configuring the database context as shown here:
// this code belong to the database context class
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer(
_connectionString,
x => x.MigrationsHistoryTable("TheMigrations", "meta"));
You are getting dbo
schema for the created table, because this is the default schema for your login (used in the database connection string). There are two ways to configure the schema in a code-first project:
- Using fluent API:
modelBuilder.HasDefaultSchema("custom");
as indicated here.
0 comment threads