public DataMigrationManager( IStore store, IDataMigrator dataMigrator, IExtensionManager pluginManager, IShellStateManager engineStateManager, ShellSettings engineSettings, ShellDescriptor engineDescriptor, IServiceProvider serviceProvider, ILogger <DataMigrationManager> logger) { _store = store; _dataMigrator = dataMigrator; _pluginManager = pluginManager; _engineStateManager = engineStateManager; _engineSettings = engineSettings; _engineDescriptor = engineDescriptor; _serviceProvider = serviceProvider; _logger = logger; }
/// <summary> /// Generates table data inserts and updates to sync two tables in /// different databases. /// </summary> /// <param name="migrator">The data migrator instance.</param> /// <param name="source">The source table to script all data from.</param> /// <param name="writer">The script writer strategy.</param> protected virtual void ScriptTableData(IDataMigrator migrator, ITable source, IScriptWriter writer) { Throw.If(source, "source").IsNull(); Throw.If(writer, "writer").IsNull(); string name = DbObjectName.CreateDbObjectName(source); messageManager.OnScriptMessage( string.Format("Starting table data scripting on table {0}.", name)); script = new SqlScript(); script = migrator.ScriptAllData(source, script); writer.WriteTableDataScript(name, script.ToScript()); messageManager.OnScriptMessage( string.Format("Finished table data scripting on table {0}.", name)); }
private void StopDataMigrationThread(IDataMigrator dataMigrator) { //log.Debug("Stopping data migration thread: " + dataMigrator.Name); dataMigrator.StopMigration(); Thread activeThread = dataMigrationThreads.FirstOrDefault(thread => thread.Name.Equals(dataMigrator.Name)); if (activeThread != null) { try { activeThread.Abort(); } catch (ThreadAbortException ex) { //log.Debug(string.Empty, ex); dataMigrationThreads.Remove(activeThread); activeThread = null; //Stop the service this.Stop(); } } }
private void InitializeService() { dataMigrationThreads = new List <Thread>(); dataMigrator = new HillerServiceDataMigrator(); }
public void RunDbUpdate(string script, IDataMigrator rawDataMigrator) { RunDbUpdate(script); RunDbUpdate(rawDataMigrator); }
public void RunDbUpdate(IDataMigrator rawDataMigrator) { rawDataMigrator.Migrate(DbConnection); }
/// <summary> /// 初始化类<see cref="MigrationBackgroundService"/>。 /// </summary> /// <param name="migrator">数据库迁移接口。</param> /// <param name="logger">日志接口。</param> public MigrationBackgroundService(IDataMigrator migrator, ILogger <MigrationBackgroundService> logger) { _migrator = migrator; _logger = logger; }