コード例 #1
0
        /// <summary>
        /// Specifies the migrationConfig which contain a list Migration to migrate
        /// the migration is executed automatic as long as you have class that inherit from IMigrationConfig
        /// or you could manually execute a migration
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <exception cref="Exception"></exception>
        protected void MigrationConfig <T>(T config) where T : IMigrationConfig
        {
            try
            {
                GlobalConfiguration.Log?.Info("Migration", "Initialize");
                this.CreateTable <DBMigration>(false);
                var migrations = config.GetMigrations(this) ?? new List <Migration>();
                this.CreateTransaction();
                foreach (var migration in migrations)
                {
                    var name = migration.GetType().FullName + migration.MigrationIdentifier;
                    if (Get <DBMigration>().Where(x => x.Name == name).ExecuteAny())
                    {
                        continue;
                    }

                    var item = new DBMigration
                    {
                        Name        = name,
                        DateCreated = DateTime.Now
                    };
                    migration.ExecuteMigration(this);
                    this.Save(item);
                }
                SaveChanges();
            }
            catch (Exception e)
            {
                GlobalConfiguration.Log?.Error(e);
                Rollback();
                throw;
            }

            _tableMigrationCheck[DataBaseTypes] = true;
        }
コード例 #2
0
 /// <summary>
 /// Specifie the migrationConfig which containe a list Migration to migrate
 /// the migration is executed automaticly but as long as you have class that inhert from IMigrationConfig
 /// or you could manully execute a migration
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <exception cref="Exception"></exception>
 protected void MigrationConfig <T>(T config) where T : IMigrationConfig
 {
     if (Migrations != null)
     {
         return;
     }
     try
     {
         Migrations = config.GetMigrations(this) ?? new List <Migration>();
         this.CreateTransaction();
         foreach (var migration in Migrations)
         {
             var name        = migration.GetType().FullName + migration.MigrationIdentifier;
             var dbMigration = this.Get <DBMigration>().Where(x => x.Name == name).Execute();
             if (dbMigration.Any())
             {
                 continue;
             }
             var item = new DBMigration
             {
                 Name        = name,
                 DateCreated = DateTime.Now
             };
             migration.ExecuteMigration(this);
             this.Save(item);
         }
         Commit();
     }
     catch (Exception)
     {
         Rollback();
         throw;
     }
 }
コード例 #3
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            new AppEngine().StartupApplication();
            DBMigration.Init();
        }
コード例 #4
0
 /// <summary>
 /// Инициализируем базы данных
 /// </summary>
 private void initDataBases()
 {
     DBMigration tdbm = new DBMigration();
 }