Entity Framework Core 2.0 - Run migrations step by step -
in ef6 retrieve migrations , run step step.
there way similar in ef core?
ef 6 code
public static void runmigration(this dbcontext context, dbmigration migration, string providername, string manifest) { var prop = migration.gettype().getproperty("operations", bindingflags.nonpublic | bindingflags.instance); if (prop != null) { ienumerable<migrationoperation> operations = prop.getvalue(migration) ienumerable<migrationoperation>; migrationsqlgenerator generator = (new dbmigrationsconfiguration()).getsqlgenerator(providername); var statements = generator.generate(operations, manifest); foreach (migrationstatement item in statements) context.database.executesqlcommand(item.sql); } }
you can use getmigrations extension method of databasefacade
class (returned database
property of dbcontext
) list of pending migration names.
then can obtain imigrator
service , use migrate
method passing each target migration name:
using microsoft.entityframeworkcore; using microsoft.entityframeworkcore.infrastructure; using microsoft.entityframeworkcore.migrations; dbcontext db = ...; var pendingmigrations = db.database.getpendingmigrations().tolist(); if (pendingmigrations.any()) { var migrator = db.database.getservice<imigrator>(); foreach (var targetmigration in pendingmigrations) migrator.migrate(targetmigration); }
Comments
Post a Comment