public SqlDowngradeEnabledTableJournal( Func <IConnectionManager> connectionManager, Func <IUpgradeLog> logger, string schema, string table, IScriptProvider downgradeScriptsProvider, IDowngradeScriptFinder downgradeScriptFinder) : base(connectionManager, logger, new SqlServerObjectParser(), schema, table ?? DefaultTable, downgradeScriptsProvider, downgradeScriptFinder) { }
public DowngradeEnabledTableJournal( Func <IConnectionManager> connectionManager, Func <IUpgradeLog> logger, ISqlObjectParser sqlObjectParser, string schema, string table, IScriptProvider downgradeScriptsProvider, IDowngradeScriptFinder downgradeScriptFinder) : base(connectionManager, logger, sqlObjectParser, schema, table) { _downgradeScripts = downgradeScriptsProvider.GetScripts(connectionManager()).ToList(); journalIsInLatestVersion = false; _downgradeScriptFinder = downgradeScriptFinder; }
/// <summary> /// Creates UpgradeEngineBuilder with WithDowngradeTableProvider. /// </summary> /// <typeparam name="TDowngradeEnabledTableJournal">Table inhered from DowngradeEnabledTableJournal</typeparam> /// <param name="builder">Static extention to UpgradeEngineBuilder</param> /// <param name="downgradeScriptProvider">Pre-defined downgrade scripts provider from DbUp.IScriptProvider</param> /// <param name="downgradeScriptFinder">IDowngradeScriptFinder implementation that can match scripts with downgradeScript. Matching by name is provided by default implementation <see cref="DefaultDowngradeScriptFinder"/></param> /// <param name="schema">Schema name</param> /// <param name="table">Table Name where execuded scripts will be stored default: "SchemaVersions".</param> /// <returns></returns> public static UpgradeEngineBuilder WithDowngradeTableProvider <TDowngradeEnabledTableJournal>(this UpgradeEngineBuilder builder, IScriptProvider downgradeScriptProvider, IDowngradeScriptFinder downgradeScriptFinder, string schema = null, string table = null) where TDowngradeEnabledTableJournal : DowngradeEnabledTableJournal { builder.Configure(c => { Func <IConnectionManager> connectionManager = () => c.ConnectionManager; Func <IUpgradeLog> log = () => c.Log; c.Journal = (TDowngradeEnabledTableJournal)Activator.CreateInstance(typeof(TDowngradeEnabledTableJournal), connectionManager, log, schema, table, downgradeScriptProvider, downgradeScriptFinder); }); return(builder); }