Enable compositional approach of custom migration functionality

Open
#17,740 10 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
csharp
Domain
databases

Research direction

Start with the OnConfiguring example and the IMigrationsSqlGenerator replacement described in the issue, then trace how custom migration functionality reaches MigrationBuilder. No repository files or tests are named, so first identify the relevant migration service-registration and generator code. Done means the issue's proposed compositional extension model is defined and supported without requiring packages to overwrite the existing generator.

Written by the indexing model from the issue text.

Description

area-migrations customer-reported

Problem

I just read this article : https://docs.microsoft.com/de-de/ef/core/managing-schemas/migrations/operations

Reading the details about how to implement the generator objects for custom migration functionality it appears to me, that you can only extend migration functionality by overwriting existing one.

protected override void OnConfiguring(DbContextOptionsBuilder options)
    => options
        .UseSqlServer(connectionString)
        .ReplaceService<IMigrationsSqlGenerator, MyMigrationsSqlGenerator>();

Solution

If a compositional approach of this were to exist it would be possible to write many packages which extend the functionality of the MigrationBuilder, which seems like a much better alternative?

Dominant language
C#
Stars
14.8k
Forks
3.4k
Avg merge
2d 5h
Merged PRs (30d)
134

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dotnet/efcore

All issues in dotnet/efcore

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.