EntityFrameworkCore.Sqlite.Migrations
1.0.0
dotnet add package EntityFrameworkCore.Sqlite.Migrations --version 1.0.0
NuGet\Install-Package EntityFrameworkCore.Sqlite.Migrations -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EntityFrameworkCore.Sqlite.Migrations" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EntityFrameworkCore.Sqlite.Migrations --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: EntityFrameworkCore.Sqlite.Migrations, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install EntityFrameworkCore.Sqlite.Migrations as a Cake Addin #addin nuget:?package=EntityFrameworkCore.Sqlite.Migrations&version=1.0.0 // Install EntityFrameworkCore.Sqlite.Migrations as a Cake Tool #tool nuget:?package=EntityFrameworkCore.Sqlite.Migrations&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
This lib provide ability to create migrations for Sqlite database with EF Core 3.0
Problem
- You want update Sqlite database schema with migrations.
- You want write migrations for database with SQL.
- You use EF Core.
Solution
- Put migrations with SQL scripts in the separate files.
- List all this migrations files in the
migrations.txt
file in asc order. - Apply mirgations from
migrations.txt
to database.
Example of directory with migrations
.
├── migrations
│ ├── add table `Cat`.sql
│ ├── add table `User`.sql
│ └── init db.sql
└── migrations.txt
Example of migrations.txt
migrations/init db.sql
migrations/add table `User`.sql
migrations/add table `Cat`.sql
How to use lib
// Path to the database file
var dbPath = @"..\..\..\..\..\data\test.db";
// Path to the file that contains list of files with migrations
var migrationsPath = @"..\..\..\..\..\db\migrations.txt";
var builder = new DbContextOptionsBuilder() { };
builder.UseSqlite($"Data Source={dbPath}");
var migrationService = new MigrationsService(builder.Options);
await migrationService.MigrateAsync(migrationsPath);
Interesting to know
migrationService.MigrateAsync
method will
- create database if it is not exists
- create
__EFSqliteMigrationsHistory
table in the database, that contains rows:MigrationFileSourceSha1
for storing sha1 hash of migration file sourceMigrationFileName
migration file name, it can be not uniq, so you can apply one migration several timesMigrationFileSource
- it can include source of migrationCreated
- date time of applying migration
Example of database structure
Example of migrations table
Example of migrations table with source of migrations
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 is compatible. netcoreapp3.1 was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETCoreApp 3.0
- Microsoft.EntityFrameworkCore.Sqlite (>= 3.0.0-preview.18572.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 4,045 | 1/10/2019 |