/// <summary>
 /// Sets the global strip comment
 /// </summary>
 /// <param name="builder">The runner builder</param>
 /// <param name="stripComments">The global strip comments</param>
 /// <returns>The runner builder</returns>
 public static IMigrationRunnerBuilder WithGlobalStripComments(
     this IMigrationRunnerBuilder builder,
     bool stripComments)
 {
     builder.Services.Configure <ProcessorOptions>(opt => opt.StripComments = stripComments);
     return(builder);
 }
Esempio n. 2
0
        protected override void ConfigureMigrator(IMigrationRunnerBuilder runnerBuilder)
        {
            var sqliteConnectionString = Configuration.GetConnectionString("SQLite");

            runnerBuilder.AddSQLite()
            .WithGlobalConnectionString(sqliteConnectionString);
        }
 /// <summary>
 /// Sets configuration action for global processor options
 /// </summary>
 /// <param name="builder">The runner builder</param>
 /// <param name="configureAction">The configuration action</param>
 /// <returns>The runner builder</returns>
 public static IMigrationRunnerBuilder ConfigureGlobalProcessorOptions(
     this IMigrationRunnerBuilder builder,
     Action <ProcessorOptions> configureAction)
 {
     builder.Services.Configure(configureAction);
     return(builder);
 }
 /// <summary>
 /// Sets the global command timeout
 /// </summary>
 /// <param name="builder">The runner builder</param>
 /// <param name="commandTimeout">The global command timeout</param>
 /// <returns>The runner builder</returns>
 public static IMigrationRunnerBuilder WithGlobalCommandTimeout(
     this IMigrationRunnerBuilder builder,
     TimeSpan commandTimeout)
 {
     builder.Services.Configure <ProcessorOptions>(opt => opt.Timeout = commandTimeout);
     return(builder);
 }
 /// <summary>
 /// Sets the global connection string
 /// </summary>
 /// <param name="builder">The runner builder</param>
 /// <param name="connectionStringOrName">The connection string or name to use</param>
 /// <returns>The runner builder</returns>
 public static IMigrationRunnerBuilder WithGlobalConnectionString(
     this IMigrationRunnerBuilder builder,
     string connectionStringOrName)
 {
     builder.Services.Configure <ProcessorOptions>(opt => opt.ConnectionString = connectionStringOrName);
     return(builder);
 }
 /// <summary>
 /// Sets the global preview mode
 /// </summary>
 /// <param name="builder">The runner builder</param>
 /// <param name="preview">The global preview mode</param>
 /// <returns>The runner builder</returns>
 public static IMigrationRunnerBuilder AsGlobalPreview(
     this IMigrationRunnerBuilder builder,
     bool preview = true)
 {
     builder.Services.Configure <ProcessorOptions>(opt => opt.PreviewOnly = preview);
     return(builder);
 }
 /// <summary>
 /// Adds the migrations
 /// </summary>
 /// <param name="builder">The runner builder</param>
 /// <param name="assemblies">The target assemblies</param>
 /// <returns>The runner builder</returns>
 public static IMigrationRunnerBuilder WithMigrationsIn(
     this IMigrationRunnerBuilder builder,
     [NotNull, ItemNotNull] params Assembly[] assemblies)
 {
     builder.Services
     .AddSingleton <IMigrationSourceItem>(new AssemblyMigrationSourceItem(assemblies));
     return(builder);
 }
        /// <summary>
        /// Scans for types in the given assemblies
        /// </summary>
        /// <param name="builder">The runner builder</param>
        /// <param name="assemblies">The assemblies to scan</param>
        /// <returns>The next step</returns>
        public static IScanInBuilder ScanIn(
            this IMigrationRunnerBuilder builder,
            [NotNull, ItemNotNull] params Assembly[] assemblies)
        {
            var sourceItem = new AssemblySourceItem(assemblies);

            return(new ScanInBuilder(builder, sourceItem));
        }
        internal static IMigrationRunnerBuilder AddDatabase(this IMigrationRunnerBuilder self, string connectionString)
        {
            if (connectionString.EndsWith("temp.db"))
            {
                return(self.AddSQLite().WithGlobalConnectionString(connectionString));
            }

            return(self.AddPostgres().WithGlobalConnectionString(connectionString));
        }
        /// <summary>
        /// Register dotConnection Oracle processor dependencies
        /// </summary>
        /// <param name="builder">The builder to add the Oracle-specific services to</param>
        private static void RegisterDotConnectOracleProcessor(IMigrationRunnerBuilder builder)
        {
            RegisterOracleQuoter(builder);

            builder.Services
            .AddScoped <DotConnectOracleDbFactory>()
            .AddScoped <DotConnectOracleProcessor>()
            .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <DotConnectOracleProcessor>());
        }
 /// <summary>
 /// Sets the migration runner conventions
 /// </summary>
 /// <param name="builder">The runner builder</param>
 /// <param name="conventions">The migration runner conventions</param>
 /// <returns>The runner builder</returns>
 public static IMigrationRunnerBuilder WithRunnerConventions(
     this IMigrationRunnerBuilder builder,
     IMigrationRunnerConventions conventions)
 {
     builder.Services
     .AddSingleton <IMigrationRunnerConventionsAccessor>(
         new PassThroughMigrationRunnerConventionsAccessor(conventions));
     return(builder);
 }
        /// <summary>
        /// Add the migration quoter conventions
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="configureOptions"></param>
        /// <returns>The runner builder</returns>
        public static IMigrationRunnerBuilder WithQuoterConventions(
            this IMigrationRunnerBuilder builder,
            Action <QuoterOptions> configureOptions)
        {
            builder.Services
            .Configure(configureOptions);

            return(builder);
        }
Esempio n. 13
0
 /// <summary>
 /// Adds Postgres 10.0 support
 /// </summary>
 /// <param name="builder">The builder to add the Postgres-specific services to</param>
 /// <returns>The migration runner builder</returns>
 public static IMigrationRunnerBuilder AddPostgres10_0(this IMigrationRunnerBuilder builder)
 {
     builder.Services
     .AddScoped <Postgres10_0Processor>()
     .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <Postgres10_0Processor>())
     .AddScoped <Postgres10_0Generator>()
     .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <Postgres10_0Generator>());
     return(builder.AddCommonPostgresServices());
 }
 /// <summary>
 /// Sets the version table meta data
 /// </summary>
 /// <param name="builder">The runner builder</param>
 /// <param name="versionTableMetaData">The version table meta data</param>
 /// <returns>The runner builder</returns>
 public static IMigrationRunnerBuilder WithVersionTable(
     this IMigrationRunnerBuilder builder,
     IVersionTableMetaData versionTableMetaData)
 {
     builder.Services
     .AddScoped <IVersionTableMetaDataAccessor>(
         _ => new PassThroughVersionTableMetaDataAccessor(versionTableMetaData));
     return(builder);
 }
        /// <summary>
        /// Adds .Connect Oracle 12c support
        /// </summary>
        /// <param name="builder">The builder to add the .Connect Oracle-specific services to</param>
        /// <returns>The migration runner builder</returns>
        public static IMigrationRunnerBuilder AddDotConnectOracle12C(this IMigrationRunnerBuilder builder)
        {
            RegisterOracle12CGenerator(builder);

            RegisterDotConnectOracleProcessor <DotConnectOracle12CProcessor>(builder);

            builder.Services.AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <IOracle12CGenerator>());

            return(builder);
        }
        /// <summary>
        /// Adds managed Oracle 12c support
        /// </summary>
        /// <param name="builder">The builder to add the managed Oracle-specific services to</param>
        /// <returns>The migration runner builder</returns>
        public static IMigrationRunnerBuilder AddOracle12CManaged(this IMigrationRunnerBuilder builder)
        {
            RegisterOracle12CGenerator(builder);

            RegisterOracleManagedProcessor <Oracle12CManagedProcessor>(builder);

            builder.Services.AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <IOracle12CGenerator>());

            return(builder);
        }
Esempio n. 17
0
 /// <summary>
 /// Adds JET engine (Access) support
 /// </summary>
 /// <param name="builder">The builder to add the JET engine (Access)-specific services to</param>
 /// <returns>The migration runner builder</returns>
 public static IMigrationRunnerBuilder AddJet(this IMigrationRunnerBuilder builder)
 {
     builder.Services
     .AddScoped <JetProcessor>()
     .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <JetProcessor>())
     .AddScoped <JetQuoter>()
     .AddScoped <JetGenerator>()
     .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <JetGenerator>());
     return(builder);
 }
        /// <summary>
        /// Register Oracle managed processor dependencies
        /// </summary>
        /// <param name="builder">The builder to add the Oracle-specific services to</param>
        private static void RegisterOracleManagedProcessor(IMigrationRunnerBuilder builder)
        {
            RegisterOracleQuoter(builder);

            builder.Services
            .AddScoped <OracleManagedDbFactory>()
            .AddScoped <OracleManagedProcessor>()
            .AddScoped <OracleProcessorBase>(sp => sp.GetRequiredService <OracleManagedProcessor>())
            .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <OracleManagedProcessor>());
        }
Esempio n. 19
0
        public static IMigrationRunnerBuilder UseSqlite(
            this IMigrationRunnerBuilder builder,
            IConfiguration configuration)
        {
            builder
            .AddSQLite()
            .WithGlobalConnectionString(configuration.GetConnectionString("ExampleSqlite"));

            return(builder);
        }
 /// <summary>
 /// Adds Redshift support
 /// </summary>
 /// <param name="builder">The builder to add the Redshift-specific services to</param>
 /// <returns>The migration runner builder</returns>
 public static IMigrationRunnerBuilder AddRedshift(this IMigrationRunnerBuilder builder)
 {
     builder.Services
     .AddScoped <RedshiftDbFactory>()
     .AddScoped <RedshiftProcessor>()
     .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <RedshiftProcessor>())
     .AddScoped <RedshiftQuoter>()
     .AddScoped <RedshiftGenerator>()
     .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <RedshiftGenerator>());
     return(builder);
 }
 /// <summary>
 /// Adds MySQL 5 support
 /// </summary>
 /// <param name="builder">The builder to add the MySQL 5-specific services to</param>
 /// <returns>The migration runner builder</returns>
 public static IMigrationRunnerBuilder AddMySql5(this IMigrationRunnerBuilder builder)
 {
     builder.Services.TryAddScoped <MySqlDbFactory>();
     builder.Services.TryAddScoped <MySqlQuoter>();
     builder.Services
     .AddScoped <MySql5Processor>()
     .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <MySql5Processor>())
     .AddScoped <MySql5Generator>()
     .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <MySql5Generator>());
     return(builder);
 }
Esempio n. 22
0
 /// <summary>
 /// Adds DB2 support (Linux and Windows server)
 /// </summary>
 /// <param name="builder">The builder to add the DB2-specific services to</param>
 /// <returns>The migration runner builder</returns>
 public static IMigrationRunnerBuilder AddDb2(this IMigrationRunnerBuilder builder)
 {
     builder.Services
     .AddScoped <Db2DbFactory>()
     .AddScoped <Db2Processor>()
     .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <Db2Processor>())
     .AddScoped <Db2Quoter>()
     .AddScoped <Db2Generator>()
     .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <Db2Generator>());
     return(builder);
 }
 /// <summary>
 /// Adds SQL Server 2005 support
 /// </summary>
 /// <param name="builder">The builder to add the SQL Server-specific services to</param>
 /// <returns>The migration runner builder</returns>
 public static IMigrationRunnerBuilder AddSqlServer2005(this IMigrationRunnerBuilder builder)
 {
     builder.Services.TryAddSingleton <SqlServerBatchParserFactory>();
     builder.Services.TryAddScoped <SqlServer2005Quoter>();
     builder.Services
     .AddScoped <SqlServer2005Processor>()
     .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <SqlServer2005Processor>())
     .AddScoped <SqlServer2005Generator>()
     .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <SqlServer2005Generator>());
     return(builder);
 }
            private ScanInBuilder(
                IMigrationRunnerBuilder builder,
                IAssemblySourceItem currentSourceItem,
                IEmbeddedResourceProvider sourceItem)
            {
                _builder   = builder;
                SourceItem = currentSourceItem;

                _builder.DanglingAssemblySourceItem = null;
                Services.AddSingleton(sourceItem);
            }
Esempio n. 25
0
 /// <summary>
 /// Adds Postgres support
 /// </summary>
 /// <param name="builder">The builder to add the Postgres-specific services to</param>
 /// <returns>The migration runner builder</returns>
 public static IMigrationRunnerBuilder AddPostgres(this IMigrationRunnerBuilder builder)
 {
     builder.Services
     .AddScoped <PostgresDbFactory>()
     .AddScoped <PostgresProcessor>()
     .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <PostgresProcessor>())
     .AddScoped <PostgresQuoter>()
     .AddScoped <PostgresGenerator>()
     .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <PostgresGenerator>());
     return(builder);
 }
            private ScanInBuilder(
                IMigrationRunnerBuilder builder,
                IAssemblySourceItem currentSourceItem,
                ITypeSourceItem <IConventionSet> sourceItem)
            {
                _builder   = builder;
                SourceItem = currentSourceItem;

                _builder.DanglingAssemblySourceItem = null;
                Services.AddSingleton(sourceItem);
            }
            private ScanInBuilder(
                IMigrationRunnerBuilder builder,
                IAssemblySourceItem currentSourceItem,
                IVersionTableMetaDataSourceItem sourceItem)
            {
                _builder   = builder;
                SourceItem = currentSourceItem;

                _builder.DanglingAssemblySourceItem = null;
                Services.AddSingleton(sourceItem);
            }
 /// <summary>
 /// Adds SQL Server support
 /// </summary>
 /// <remarks>
 /// This always selects the latest supported SQL server version.
 /// </remarks>
 /// <param name="builder">The builder to add the SQL Server-specific services to</param>
 /// <returns>The migration runner builder</returns>
 public static IMigrationRunnerBuilder AddSybaseAse(this IMigrationRunnerBuilder builder)
 {
     builder.Services.TryAddTransient <SybaseAseBatchParser>();
     builder.Services.TryAddScoped <SybaseAse2000Quoter>();
     builder.Services
     .AddScoped <SybaseAseProcessor>()
     .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <SybaseAseProcessor>())
     .AddScoped <SybaseAse2000Generator>()
     .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <SybaseAse2000Generator>());
     return(builder.AddCommonSybaseAseServices());
 }
Esempio n. 29
0
 /// <summary>
 /// Adds SQL Server 2008 support
 /// </summary>
 /// <param name="builder">The builder to add the SQL Server-specific services to</param>
 /// <returns>The migration runner builder</returns>
 public static IMigrationRunnerBuilder AddSqlServer2008(this IMigrationRunnerBuilder builder)
 {
     builder.Services.TryAddTransient <SqlServerBatchParser>();
     builder.Services.TryAddScoped <SqlServer2008Quoter>();
     builder.Services
     .AddScoped <SqlServer2008Processor>()
     .AddScoped <IMigrationProcessor>(sp => sp.GetRequiredService <SqlServer2008Processor>())
     .AddScoped <SqlServer2008Generator>()
     .AddScoped <IMigrationGenerator>(sp => sp.GetRequiredService <SqlServer2008Generator>());
     return(builder);
 }
 /// <summary>
 /// Register Oracle quoter
 /// </summary>
 /// <param name="builder">The builder to add the Oracle-specific services to</param>
 private static void RegisterOracleQuoter(IMigrationRunnerBuilder builder)
 {
     builder.Services.TryAddScoped <OracleQuoterBase>(
         sp =>
     {
         var opt = sp.GetRequiredService <IOptionsSnapshot <ProcessorOptions> >();
         return(opt.Value.IsQuotingForced() ?
                new OracleQuoterQuotedIdentifier() :
                new OracleQuoter());
     });
 }