EFCoreAutoMigrator is an aggressive automatic migration tool that works with Entity Framework Core 2.1 and above. It basically recreates your database tables whenever it detects a change in your database schema.
EFCoreAutoMigrator was built for speeding up the development stages of your applications. Since you don't need to deal with database migrations after you install this tool;
- No migration files generated.
- No more conflicts with your branch and your teammates.
- Fixing database schema errors is a lot easier.
EFCoreAutoMigrator creates and stores a hash in your FileSystem or Database to check if you have any changes on your current schema by utilizing GenerateCreateScript function of EFCore 2.1+.
It is quite simple to install.
You can install EFCoreAutoMigrator from NuGet with the command below:
Install-Package EFCoreAutoMigrator
Program.cs
public static class Program
{
public static void Main(string[] args)
{
IWebHost server = BuildWebHost(args);
var env = server.Services.GetService(typeof(IHostingEnvironment)) as IHostingEnvironment;
// I would highly suggest you to not to use this tool in your production environment.
// Since it will vaporize your whole database which you probably don't want :)
if (!env.IsProduction())
{
using (IServiceScope serviceScope = server.Services.GetService<IServiceScopeFactory>().CreateScope())
{
// Make sure that your DbContext is registered in your DI container.
MyDbContext myDbContext = serviceScope.ServiceProvider.GetService<MyDbContext>();
// Always protect your production/secure databases.
var secureDataSources = new SecureDataSource[]
{
new SecureDataSource
{
ServerAddress = "mysecure.database.net",
DatabaseName = "my-production-database"
}
};
new AutoMigrator(myDbContext, secureDataSources).EnableAutoMigration(
false, MigrationModelHashStorageMode.Database, () =>
{
// Seed function here if you need
});
}
}
server.Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
* Tests
* Further documentation