public IMigrator CreateMigrator(Assembly assembly, string scope, int version)
        {
            if (assembly == null)
            {
                throw new ArgumentNullException("assembly");
            }
            if (scope == null)
            {
                throw new ArgumentNullException("scope");
            }

            if (ConfigurationManager.ConnectionStrings[ConnStrName] == null)
            {
                throw new Exception(ConnStrName + " connection string configuration not found.");
            }

            var connstr = ConfigurationManager.ConnectionStrings[ConnStrName].ConnectionString;

            var config = new StaticMigratorConfiguration {ConnectionString = connstr, CommandTimeout = 300};

            IConnectionProvider connProvider = new SQLiteConnectionProvider(config);
            ITransactionProvider transProvider = new TransactionProvider(connProvider);
            IDatabaseProvider dbProvider = new SQLiteDatabaseProvider(connProvider, transProvider, config);
            ISchemaProvider schemaProvider = new SQLiteSchemaProvider(dbProvider);

            ISchemaStateManager schemaStateManager = new SQLiteSchemaStateManager(dbProvider, schemaProvider);
            IVersionStateFactory versionStateFactory = new SQLiteVersionStateFactory(config, schemaStateManager);

            IMigrationFinder finder = new AssemblyMigrationFinder(assembly);

            IMigrationSelector selector = new MigrationSelector(finder, versionStateFactory);

            IMigrationFactoryChooser chooser = new WindsorBasedFactoryChooser(kernel);
            ICommonTransformations common = new CommonTransformations(dbProvider, schemaProvider);

            IMigrationInitializer initializer = new MigrationInitializer(config, dbProvider, schemaProvider, common, connProvider);
            IMigrationRunner runner = new MigrationRunner(chooser, initializer, schemaStateManager, config, transProvider);
            IWorkingDirectoryManager workDirMng = new NoOpWorkingDirectoryManager();

            IMigrator migrator = new Migrator(selector, runner, dbProvider, schemaStateManager, workDirMng);

            //MigrationScope migrationScope = null;
            migrator.Start += delegate {  };
            migrator.End += delegate {  };

            return migrator;
        }
Esempio n. 2
0
		public ExitCode Run(string[] args)
		{
			try
			{
				var options = new Options();
				options.ParseArguments(args);

				var task = new Migrator();
				task.Run(new Configuration(options));
			}
			catch (Exception err)
			{
				Console.Error.WriteLine(err.ToString());
				return ExitCode.Failure;
			}

			return ExitCode.Success;
		}
		protected override void ExecuteTask()
		{
			var logAppender = new ConsoleAppender(); // new EventLogAppender();
			logAppender.Layout = new log4net.Layout.PatternLayout("%-6level %-13date{HH:mm:ss,fff} %m %newline");
			log4net.Config.BasicConfigurator.Configure(logAppender);

			DetectDataBase.Detect(this, this.DataBase);

			var migrator = new Migrator();
			migrator.Run(this);			
		}