Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
        /// <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));
        }
Ejemplo n.º 3
0
        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();
                }
            }
        }
Ejemplo n.º 4
0
        private void InitializeService()
        {
            dataMigrationThreads = new List <Thread>();

            dataMigrator = new HillerServiceDataMigrator();
        }
Ejemplo n.º 5
0
 public void RunDbUpdate(string script, IDataMigrator rawDataMigrator)
 {
     RunDbUpdate(script);
     RunDbUpdate(rawDataMigrator);
 }
Ejemplo n.º 6
0
 public void RunDbUpdate(IDataMigrator rawDataMigrator)
 {
     rawDataMigrator.Migrate(DbConnection);
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 初始化类<see cref="MigrationBackgroundService"/>。
 /// </summary>
 /// <param name="migrator">数据库迁移接口。</param>
 /// <param name="logger">日志接口。</param>
 public MigrationBackgroundService(IDataMigrator migrator, ILogger <MigrationBackgroundService> logger)
 {
     _migrator = migrator;
     _logger   = logger;
 }