Improve experience deploying databases created by Migrations

Open
#19,587 69 comments 70 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

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

Research direction

This is an umbrella issue rather than a self-contained task, with completed and backlog work tracked through the referenced issue numbers. Start by reviewing the backlog items and their individual scopes; no file, test, entry point, or single definition of done is provided here, so a contributor should select a concrete child issue before beginning.

Written by the indexing model from the issue text.

Description

area-migrations area-tools composite-issue needs-design

This is a grouping of related issues. Feel free to vote (👍) for this issue to indicate that this is an area that you think we should spend time on, but consider also voting for individual issues for things you consider especially important.


Currently, many developers migrate their databases at application startup time. This is easy but is not recommended because:

  • Multiple threads/processes/servers may attempt to migrate the database concurrently
  • Applications may try to access inconsistent state while this is happening
  • Usually the database permissions to modify the schema should not be granted for application execution
  • Its hard to revert back to a clean state if something goes wrong

We want to deliver a better experience here that allows an easy way to migrate the database at deployment time. This should:

  • Work on Linux, Mac, and Windows
  • Be a good experience on the command line
  • Support scenarios with containers
  • Work with commonly used real-world deployment tools/flows
  • Integrate into at least Visual Studio

The result is likely to be many small improvements in EF Core (for example, better Migrations on SQLite), together with guidance and longer-term collaborations with other teams to improve end-to-end experiences that go beyond just EF.


Done in 6.0
  • #19693
Done in 9.0
  • #22616
  • #17578
  • #33731
  • #33732
Backlog
  • #17568
  • #2167
  • #3053
  • #8695
  • #15174
  • #29343
  • #15762
  • #16406
  • #18624
  • #18840
  • #20402
  • #22613
  • #24866
  • #25872
  • #31999
  • #26155
  • #19694
  • #24710
  • #34991
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.