Skip to content

Open up MigrationHistoryTable's model building for provider extensibility (or rethink the design) #34991

@roji

Description

@roji

MigrationHistoryTable constructs a mini-model in order to generate the migration command for the creation of the history table in the database (code). It removes some specific conventions in order to avoid creating other tables at that point (only the migration history table).

The problem is, providers may have their own conventions which add things to the database. For example, Npgsql has conventions which create database extensions, enums, and possibly collations - all these operations shouldn't happen at this point (where all we want is to create the history table); this is the cause of npgsql/efcore.pg#3324. But the code that generates the model - and selectively removes the conventions - is private.

We should open this up for extensibility, or possibly rethink the design here.

/cc @AndriySvyryd

Metadata

Metadata

Assignees

No one assigned
    No fields configured for Feature.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions