LinqToDB.MigrateUp
1.0.1
dotnet add package LinqToDB.MigrateUp --version 1.0.1
NuGet\Install-Package LinqToDB.MigrateUp -Version 1.0.1
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="LinqToDB.MigrateUp" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LinqToDB.MigrateUp" Version="1.0.1" />
<PackageReference Include="LinqToDB.MigrateUp" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LinqToDB.MigrateUp --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: LinqToDB.MigrateUp, 1.0.1"
#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.
#:package LinqToDB.MigrateUp@1.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LinqToDB.MigrateUp&version=1.0.1
#tool nuget:?package=LinqToDB.MigrateUp&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
LinqToDB.MigrateUp Library
LinqToDB.MigrateUp
is a C# library providing schema migration utilities. It's designed to facilitate database migrations using a fluent syntax that integrates seamlessly with the LINQ to DB framework.
Features
- Migration Profiles: Create reusable migration profiles to apply changes to your database structure.
- Fluent Interface: Construct migration tasks using a fluent syntax for creating tables, indexes, and importing data.
- Extensible Providers: Out of the box support for SQL Server and SQLite with the capability to add more providers as needed.
Core Interfaces & Classes
- Migration: The primary entry point for running migrations against a database.
- MigrationProfile: Base class for defining migration tasks.
- MigrationConfiguration: Configure migration profiles to execute.
Quick Start
To use LinqToDB.MigrateUp
:
Create a
MigrationProfile
:using LinqToDB.Mapping; using LinqToDB.MigrateUp; [Table] public class Person { [PrimaryKey] public int PersonId { get; set; } [Column] public string FirstName { get; set; } [Column] public string LastName { get; set; } [Column] public int Age { get; set; } [Column] public bool IsActive { get; set; } [Column] public DateTime CreatedDate { get; set; } [Column] public DateTime? ModifiedDate { get; set; } [Column] public DateTime? DeletedDate { get; set; } } public class PersonProfile : MigrationProfile { public PersonProfile() { this.CreateTable<Person>(); this.CreateIndex<Person>() .AddColumn(x => x.PersonId) .AddColumn(x => x.IsActive) ; this.CreateIndex<Person>() .HasName("IX_Persons_LastName") .AddColumn(x => x.LastName) ; this.ImportData<Person>() .Key(x => x.PersonId) .Source(() => RandomPeople()) //.WhenTableCreated() //.WhenTableEmpty() ; } IEnumerable<Person> RandomPeople() { var random = new Random(); yield return GenerateRandomPerson(random, 1); yield return GenerateRandomPerson(random, 2); yield return GenerateRandomPerson(random, 3); yield return GenerateRandomPerson(random, 4); yield return GenerateRandomPerson(random, 5); } static string[] firstNames = new[] { "John", "Jane", "Jack", "Jill", "James", "Jenny" }; static string[] lastNames = new[] { "Smith", "Doe", "Johnson", "Williams", "Brown", "Jones" }; Person GenerateRandomPerson(Random random, int id) { return new Person { PersonId = id, LastName = lastNames[random.Next(0, lastNames.Length)], FirstName = firstNames[random.Next(0, firstNames.Length)], Age = random.Next(18, 100), IsActive = true, CreatedDate = DateTime.UtcNow, ModifiedDate = DateTime.UtcNow, DeletedDate = null, }; } }
Setup the
MigrationConfiguration
:var migrationConfiguration = new MigrationConfiguration(config => { config.AddProfiles(typeof(Program).Assembly); });
Run migrations:
var connectionString = ... var dataConnection = new DataConnection(ProviderName.SqlServer, connectionString); var migration = new Migration(dataConnection); migration.Run(migrationConfiguration);
Contribute
Contributions to the LinqToDB.MigrateUp
library are welcome. Check the issues, fork the repository, and submit a pull request!
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. net9.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- linq2db (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.