C# FluentMigrator版本控制刷新视图
我正在使用Fluent Migrator更新数据库。向上和向下功能工作正常。下一步是创建视图。我希望从我拥有的.SQL文件中运行这些。我希望每次运行所有迁移后都能运行此程序 我目前拥有的是:C# FluentMigrator版本控制刷新视图,c#,fluent-migrator,C#,Fluent Migrator,我正在使用Fluent Migrator更新数据库。向上和向下功能工作正常。下一步是创建视图。我希望从我拥有的.SQL文件中运行这些。我希望每次运行所有迁移后都能运行此程序 我目前拥有的是: var blah = new MigrationConventions(); var maintenanceLoader = new MaintenanceLoader(_migrate, blah); maintenanceLoader.ApplyMaintenance(MigrationStage.Af
var blah = new MigrationConventions();
var maintenanceLoader = new MaintenanceLoader(_migrate, blah);
maintenanceLoader.ApplyMaintenance(MigrationStage.AfterAll);
还有一节课
[Maintenance(MigrationStage.AfterAll)]
public class ViewMaintenance
{
public ViewMaintenance() {
var blah = 123;
}
}
这不会触发,因为在maintenanceLoader中可以找到0个元素。我正在插入_migrate,其定义如下:
var runnerContext = new RunnerContext(new TextWriterAnnouncer(UpdateText));
_migrate = new MigrationRunner(
Assembly.GetExecutingAssembly(),
runnerContext,
new SqlServerProcessor(
new SqlConnection(connectionString),
new SqlServer2012Generator(),
new TextWriterAnnouncer(UpdateText),
new ProcessorOptions(),
new SqlServerDbFactory()));
为什么不能扫描程序集.getExecutionGassembly()
并找到[维护(MigrationStage.AfterAll)]
我还希望ViewMaintenance类能够运行迁移类所具有的
Execute.Sql(
)。我下载了源代码并找到了它
在我希望运行维护的类中,我需要继承:Migration
类,就像migrations(duh..)一样。然后,它将可以访问它在迁移中可以访问的所有内容,包括Execute.Sql(
)
当它从继承时,Fluent Migrator中的反射将搜索它,找到它,并使用设置为在所有迁移运行后运行它的属性
本部分不需要:
var blah = new MigrationConventions();
var maintenanceLoader = new MaintenanceLoader(_migrate, blah);
maintenanceLoader.ApplyMaintenance(MigrationStage.AfterAll);
整洁:)