コード例 #1
0
        /// <summary>
        /// Adds configuration for <see cref="MigrationsMiddleware"/> into <see cref="IServiceCollection"/>.
        /// </summary>
        /// <param name="setupAction">Setup migration options.</param>
        /// <returns>This instance of <see cref="KormBuilder"/>.</returns>
        public KormBuilder AddKormMigrations(Action <MigrationOptions> setupAction = null)
        {
            Services.AddMemoryCache();
            MigrationOptions options = SetupMigrationOptions(setupAction);

            _migrationsRunner = new MigrationsRunner(ConnectionSettings.ConnectionString, options);
            return(this);
        }
コード例 #2
0
        /// <summary>
        /// Invokes the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="migrationsRunner">Migrations runner.</param>
        public async Task Invoke(
            HttpContext context,
            IMigrationsRunner migrationsRunner)
        {
            if (CanMigrate())
            {
                SetupCache();

                await migrationsRunner.MigrateAsync();
            }
        }
コード例 #3
0
ファイル: Startup.cs プロジェクト: AliElDani/graphql-template
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostEnvironment env, IMigrationsRunner migrationsRunner)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }

            app.UseGraphiQl("/graphql/users");
            app.UseMvc();
            app.UseHttpsRedirection();

            migrationsRunner.Run();
        }
コード例 #4
0
        /// <summary>
        /// Invokes the specified context.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="databaseFactory">Database factory for getting <see cref="IMigrationsRunner"/>.</param>
        public async Task Invoke(HttpContext context, IDatabaseFactory databaseFactory)
        {
            string databaseName = null;

            if (context.Request.Path.HasValue)
            {
                databaseName = context.Request.Path.Value.Trim('/');
            }
            if (string.IsNullOrEmpty(databaseName))
            {
                databaseName = KormBuilder.DefaultConnectionStringName;
            }
            IMigrationsRunner migrationsRunner = databaseFactory.GetMigrationsRunner(databaseName);

            if ((migrationsRunner != null) && CanMigrate(databaseName))
            {
                SetupCache(databaseName);
                await migrationsRunner.MigrateAsync();
            }
        }