EFCoreTerminalUI 1.1.0
dotnet tool install --global EFCoreTerminalUI --version 1.1.0
dotnet new tool-manifest
dotnet tool install --local EFCoreTerminalUI --version 1.1.0
#tool dotnet:?package=EFCoreTerminalUI&version=1.1.0
nuke :add-package EFCoreTerminalUI --version 1.1.0
EF Core Terminal UI (efui)
An interactive terminal UI for Entity Framework Core migrations. Pick your projects and migrations with the arrow keys to add, remove or apply migrations — no more typing long dotnet ef commands with --project and --startup-project flags.
── EF Core Terminal UI ──────────────────────────────────────────────
Migration Infrastructure/Infrastructure.csproj
Startup WebApi/WebApi.csproj
DbContext Infrastructure.AppDbContext
Database connected
╭────┬─────────────────────────────────────┬──────────────╮
│ # │ Migration │ Status │
├────┼─────────────────────────────────────┼──────────────┤
│ 1 │ 20261023055621_Init │ ✔ applied │
│ 2 │ 20261023055653_AddPrice ◀ latest │ ● pending │
╰────┴─────────────────────────────────────┴──────────────╯
What do you want to do? (↑/↓ and Enter)
> + Add Migration
- Remove Last Migration
↑ Update Database (latest migration)
→ Update Database (pick migration / revert)
# Generate SQL Script
...
Features
- Arrow-key menus for every operation — nothing to memorize.
- Built for layered solutions: scans the folder for
.csprojfiles and suggests the migration project (where yourDbContextandMigrationsfolder live) and the startup project (Web / Exe). - Remembers your setup: project and
DbContextselections are saved to.efui.json, so the next run goes straight to the menu. - Migration status at a glance: applied (✔) and pending (●) migrations, with the latest one highlighted. Falls back to an offline list when the database is unreachable.
- Safe remove: if the last migration is already applied,
efuioffers to revert it from the database before removing it. - Revert to any point: update the database to any migration, or back to
0. - Live, colorized output from
dotnet ef. - Multilingual UI: English, Türkçe, Deutsch, Español and Français.
Installation
dotnet tool install --global EFCoreTerminalUI
Update to the latest version:
dotnet tool update --global EFCoreTerminalUI
Usage
Run it from your solution folder:
efui # current folder
efui ../MyProject # another folder
- On first run, pick the migration project (e.g.
Infrastructure) and the startup project (e.g.WebApi). The most likely candidates are listed first. - If there is more than one
DbContext, pick one from the list. - Your choices are saved to
.efui.json. Use Settings → Change project / DbContext to change them later.
Menu
| Action | Runs |
|---|---|
| Add Migration | dotnet ef migrations add <name>, optionally followed by database update |
| Remove Last Migration | dotnet ef migrations remove (with --force to revert it first if it is applied) |
| Update Database (latest) | dotnet ef database update |
| Update Database (pick / revert) | dotnet ef database update <migration> or 0 |
| Generate SQL Script | dotnet ef migrations script <from> <to> [--idempotent] -o file.sql |
| Drop Database | dotnet ef database drop --force (you must type DROP to confirm) |
| Settings | Change the UI language or the project / DbContext selection |
Language
On first run efui asks for your language, with your system language suggested first. You can change it any time from Settings → Language.
| Language | Code |
|---|---|
| English | en |
| Türkçe | tr |
| Deutsch | de |
| Español | es |
| Français | fr |
The language is a per-user preference stored in ~/.efui/config.json, so it applies to every project.
Configuration files
| File | Scope | Contents |
|---|---|---|
.efui.json (in your solution folder) |
per project | migration project, startup project, DbContext |
~/.efui/config.json |
per user | UI language |
Tip:
.efui.jsonholds local paths for your machine — you may want to add it to your project's.gitignore.
Requirements
- .NET 9 SDK or later
dotnet-ef—efuioffers to install it if it is missingMicrosoft.EntityFrameworkCore.Designreferenced by the startup project
Building from source
git clone https://github.com/alican645/EntityFrameworkUI.git
cd EntityFrameworkUI/EFCoreTerminalUI
dotnet pack -c Release
dotnet tool install --global --add-source ./nupkg EFCoreTerminalUI
Contributing
Issues and pull requests are welcome — including new translations: add a Strings instance in EFCoreTerminalUI/Localization/Translations.cs and register it in L.Languages. Any text you leave out falls back to English.
Development happens on the dev branch; merging into main with a bumped <Version> publishes a new release to NuGet automatically.
License
MIT. This is a community tool and is not affiliated with or endorsed by Microsoft.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.