public void FkCheckNoCheckTest()
        {
            var version = MsSqlVersion.MsSql2016;

            var dd = new TestDatabaseFk();

            dd.SetVersions(version.GetTypeMapper());
            Init(version, dd);

            var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader(
                SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName]
                , SqlExecuterTestAdapter.GetContext(version), dd.GetSchemaNames().ToList());
            var ddInDatabase = ddlReader.GetDatabaseDefinition();

            var fk = dd.GetTable("Foreign").Properties.OfType <ForeignKey>().First();

            Assert.AreEqual("true", fk.SqlEngineVersionSpecificProperties[version, "Nocheck"]);

            fk.SqlEngineVersionSpecificProperties[version, "Nocheck"] = "false";

            var comparer = new Comparer(SqlExecuterTestAdapter.GetContext(version));
            var changes  = comparer.Compare(ddInDatabase, dd);

            _ = changes[0] as ForeignKeyChange;

            _ = new DatabaseMigrator(SqlExecuterTestAdapter.GetExecuter(version.UniqueName), SqlGeneratorFactory.CreateMigrationGenerator(version, SqlExecuterTestAdapter.GetContext(version)));

            // TODO change FK
            // databaseMigrator.
        }
Esempio n. 2
0
        protected void Application_Start()
        {
            NinjectContainer.RegisterAssembly();
            DatabaseMigrator.UpdateDatabase();

            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
Esempio n. 3
0
        public void Application_Start(object sender, EventArgs e)
        {
            System.Web.Helpers.AntiForgeryConfig.UniqueClaimTypeIdentifier = System.Security.Claims.ClaimTypes.Name;
            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new CustomViewEngine());
            XmlConfigurator.Configure();
            var config = GlobalConfiguration.Configuration;

            config.MapHttpAttributeRoutes();
            config.EnsureInitialized();
            LogManager.GetLogger(GetType()).Info("Application start!");
            var dbMigrator = new DatabaseMigrator();

            if (dbMigrator.ShouldRun)
            {
                if (!dbMigrator.CanConnectToDatabase())
                {
                    throw new Exception("Cannot connect to the database. Please check your connection string and ensure the database exists.");
                }
                if (!dbMigrator.Run())
                {
                    throw new Exception("Failed to Upgrade the Database using the pending Migrations. Please, see the Log file for further details.");
                }
            }
            new AccessLogManager().Run();
            RegisterRoutes(RouteTable.Routes);
            RuntimePredicateBuilder.RequiredAssembliesPaths = new List <string>()
            {
                Server.MapPath("bin\\DSS2_SynchromodalityCapacityOptimisation.Backend.dll"),
                Server.MapPath("bin\\DSS2_SynchromodalityCapacityOptimisation.Web.dll"),
                Server.MapPath("bin\\zAppDev.DotNet.Framework.dll")
            };
            WebFormResources.ClearResources = true;
            Utilities.InitXssEncoder();
        }
Esempio n. 4
0
        public ActionResult Update(string password, string target = null)
        {
            if (password != WebAppSettings.DbMigrationSecret)
            {
                return(HttpNotFound());
            }

            try {
                lock (_migrationLock) {
                    var migrator = new DatabaseMigrator <ApplicationDbContext, App.DataAccess.Migrations.Configuration>();
                    migrator.MigrateToLatestVersion(true, string.IsNullOrWhiteSpace(target) ? null : target);
                    return(Json(new {
                        Status = true,
                        Message =
                            $"Success in migrating DB. Target migration: {(string.IsNullOrWhiteSpace(target) ? "#LATEST#" : target)}"
                    }, JsonRequestBehavior.AllowGet));
                }
            } catch (Exception ex) {
                _logger.LogError(ex);
                return(Json(new {
                    Status = false,
                    Error = ex.Message,
                    ErrorInner = ex.InnerException?.Message
                }, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Check sqlite database
        /// </summary>
        /// <returns>when database is compatible, return true</returns>
        private bool CheckDatabase()
        {
            var ver = Database.ManagementCrud.DatabaseVersion;

            if (String.IsNullOrEmpty(ver))
            {
                Database.ManagementCrud.DatabaseVersion = DbVersion;
            }
            else if (ver != DbVersion)
            {
                switch (ver)
                {
                // base version
                case "1.0":
                    DatabaseMigrator.MigrateToVersionA();
                    DatabaseMigrator.MigrateToVersionB();
                    DatabaseMigrator.MigrateToVersionC();
                    Database.ManagementCrud.DatabaseVersion = DbVersion;
                    return(true);

                case "A":
                    DatabaseMigrator.MigrateToVersionB();
                    DatabaseMigrator.MigrateToVersionC();
                    Database.ManagementCrud.DatabaseVersion = DbVersion;
                    return(true);

                case "B":
                    DatabaseMigrator.MigrateToVersionC();
                    Database.ManagementCrud.DatabaseVersion = DbVersion;
                    return(true);
                }
                return(false);
            }
            return(true);
        }
Esempio n. 6
0
 public void TearDown()
 {
     DatabaseMigrator.CleanUp();
     MigrationsAssembly = null;
     Logger             = null;
     DatabaseMigrator   = null;
 }
        public static void TryApplyMigration <TDatabaseContext>(this TDatabaseContext context, Type initialMigrationType)
            where TDatabaseContext : GeneralContext
        {
            var databaseMigrator = new DatabaseMigrator <TDatabaseContext>(context);

            databaseMigrator.TryUpdateDatabase(initialMigrationType);
        }
        public void NewTableTest(SqlEngineVersion version)
        {
            _sqlExecuterTestAdapter.Check(version);
            var dd = new TestDatabaseSimple();

            _sqlExecuterTestAdapter.InitializeAndCreate(version.UniqueName, dd);

            var context = new Context
            {
                Settings = TestHelper.GetDefaultTestSettings(version),
                Logger   = TestHelper.CreateLogger()
            };

            var migrationGenerator = SqlGeneratorFactory.CreateMigrationGenerator(version, context);

            var executer = _sqlExecuterTestAdapter.GetExecuter(version.UniqueName);

            var databaseMigrator = new DatabaseMigrator(executer, migrationGenerator);
            var tableNew         = new TableNew
            {
                SchemaAndTableName = "NewTableToMigrate"
            };

            ((SqlTable)tableNew).AddInt32("Id", false).SetPK().SetIdentity();

            new PrimaryKeyNamingDefaultStrategy().SetPrimaryKeyName(tableNew.Properties.OfType <PrimaryKey>().First());

            ((SqlTable)tableNew).AddNVarChar("Name", 100);

            dd.AddTable(tableNew);

            databaseMigrator.NewTable(tableNew);
        }
Esempio n. 9
0
        public static void Configure()
        {
            if (Context.Database.Exists())
            {
                try
                {
                    Context.Database.Delete();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
                Console.WriteLine("Database deleted.");
            }

            DatabaseMigrator.Initialize();

            var model = new User();                            // TODO: пофиксить

            Context.Users.Add(model);                          // TODO: пофиксить
            Context.Entry(model).State = EntityState.Detached; // TODO: пофиксить

            Console.WriteLine("Database created.");
        }
Esempio n. 10
0
 public RoundhouseMigrationRunner(
     string repository_path,
     Environment environment,
     KnownFolders known_folders,
     FileSystemAccess file_system,
     DatabaseMigrator database_migrator,
     VersionResolver version_resolver,
     bool silent,
     bool dropping_the_database,
     bool dont_create_the_database,
     bool run_in_a_transaction,
     bool use_simple_recovery)
 {
     this.known_folders            = known_folders;
     this.repository_path          = repository_path;
     this.environment              = environment;
     this.file_system              = file_system;
     this.database_migrator        = database_migrator;
     this.version_resolver         = version_resolver;
     this.silent                   = silent;
     this.dropping_the_database    = dropping_the_database;
     this.dont_create_the_database = dont_create_the_database;
     this.run_in_a_transaction     = run_in_a_transaction;
     this.use_simple_recovery      = use_simple_recovery;
 }
 public RoundhouseMigrationRunner(
     string repository_path,
     Environment environment,
     KnownFolders known_folders,
     FileSystemAccess file_system,
     DatabaseMigrator database_migrator,
     VersionResolver version_resolver,
     bool silent,
     bool dropping_the_database,
     bool dont_create_the_database,
     bool run_in_a_transaction,
     bool use_simple_recovery,
     ConfigurationPropertyHolder configuration)
 {
     this.known_folders = known_folders;
     this.repository_path = repository_path;
     this.environment = environment;
     this.file_system = file_system;
     this.database_migrator = database_migrator;
     this.version_resolver = version_resolver;
     this.silent = silent;
     this.dropping_the_database = dropping_the_database;
     this.dont_create_the_database = dont_create_the_database;
     this.run_in_a_transaction = run_in_a_transaction;
     this.use_simple_recovery = use_simple_recovery;
     this.configuration = configuration;
 }
        public void TestPushAndPopToBackgroundQueue()
        {
            var platformServicesFake = A.Fake <IPlatformServices>();

            Device.PlatformServices = platformServicesFake;

            DatabaseMigrator.Migrate(_connection, _migrationSkriptFolderPath);

            var testSpotGuid = Guid.NewGuid();
            var testLat      = 48.45;
            var testLng      = 13.9167;

            var result = BackgroundQueueService.PushWheaterRequestToBackgroundQueue(_connection, testSpotGuid, testLat, testLng).Result;

            Assert.True(result != Guid.Empty);

            var testSpotGuid2 = Guid.NewGuid();
            var testLat2      = 48.45;
            var testLng2      = 13.9167;

            var result2 = BackgroundQueueService.PushWheaterRequestToBackgroundQueue(_connection, testSpotGuid2, testLat2, testLng2).Result;

            Assert.True(result != Guid.Empty);


            var model = BackgroundQueueService.PopWheaterRequestFromBackgroundQueue(_connection).Result;

            Assert.Equal(model.ID_ElementReference.ToString(), testSpotGuid2.ToString());

            var model2 = BackgroundQueueService.PopWheaterRequestFromBackgroundQueue(_connection, false).Result;

            Assert.Equal(model2.ID_ElementReference.ToString(), testSpotGuid.ToString());
        }
        public void TestRemoveFromBackgroundQueue()
        {
            var platformServicesFake = A.Fake <IPlatformServices>();

            Device.PlatformServices = platformServicesFake;

            DatabaseMigrator.Migrate(_connection, _migrationSkriptFolderPath);

            var deleteAll = BackgroundQueueService.EmptyQueue(_connection).Result;

            Assert.True(deleteAll);

            var testSpotGuid = Guid.NewGuid();
            var testLat      = 48.45;
            var testLng      = 13.9167;

            var result = BackgroundQueueService.PushWheaterRequestToBackgroundQueue(_connection, testSpotGuid, testLat, testLng).Result;

            Assert.True(result != Guid.Empty);

            var model = BackgroundQueueService.PopWheaterRequestFromBackgroundQueue(_connection).Result;

            bool res = BackgroundQueueService.RemoveElementFromQueue(_connection, model).Result;

            Assert.True(res);

            model = BackgroundQueueService.PopWheaterRequestFromBackgroundQueue(_connection).Result;

            Assert.Null(model);
        }
Esempio n. 14
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public static void run(final org.neo4j.io.fs.FileSystemAbstraction fs, final java.io.File storeDirectory, org.neo4j.kernel.configuration.Config config, org.neo4j.logging.LogProvider userLogProvider) throws Exception
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
        public static void Run(FileSystemAbstraction fs, File storeDirectory, Config config, LogProvider userLogProvider)
        {
            StoreLogService logService = StoreLogService.withUserLogProvider(userLogProvider).withInternalLog(config.Get(store_internal_log_path)).build(fs);

            VisibleMigrationProgressMonitor progressMonitor = new VisibleMigrationProgressMonitor(logService.GetUserLog(typeof(StoreMigration)));

            LifeSupport life = new LifeSupport();

            life.Add(logService);

            // Add participants from kernel extensions...
            DefaultExplicitIndexProvider migrationIndexProvider = new DefaultExplicitIndexProvider();

            Log          log          = userLogProvider.GetLog(typeof(StoreMigration));
            JobScheduler jobScheduler = JobSchedulerFactory.createInitialisedScheduler();

            try
            {
                using (PageCache pageCache = createPageCache(fs, config, jobScheduler))
                {
                    Dependencies deps     = new Dependencies();
                    Monitors     monitors = new Monitors();
                    deps.SatisfyDependencies(fs, config, migrationIndexProvider, pageCache, logService, monitors, RecoveryCleanupWorkCollector.immediate());

                    KernelContext            kernelContext    = new SimpleKernelContext(storeDirectory, DatabaseInfo.UNKNOWN, deps);
                    DatabaseKernelExtensions kernelExtensions = life.Add(new DatabaseKernelExtensions(kernelContext, GraphDatabaseDependencies.newDependencies().kernelExtensions(), deps, ignore()));

                    DatabaseLayout databaseLayout = DatabaseLayout.of(storeDirectory);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.kernel.impl.transaction.log.files.LogFiles logFiles = org.neo4j.kernel.impl.transaction.log.files.LogFilesBuilder.activeFilesBuilder(databaseLayout, fs, pageCache).withConfig(config).build();
                    LogFiles       logFiles    = LogFilesBuilder.activeFilesBuilder(databaseLayout, fs, pageCache).withConfig(config).build();
                    LogTailScanner tailScanner = new LogTailScanner(logFiles, new VersionAwareLogEntryReader <Org.Neo4j.Kernel.impl.transaction.log.ReadableClosablePositionAwareChannel>(), monitors);

                    DefaultIndexProviderMap indexProviderMap = life.Add(new DefaultIndexProviderMap(kernelExtensions, config));

                    // Add the kernel store migrator
                    life.Start();

                    long             startTime = DateTimeHelper.CurrentUnixTimeMillis();
                    DatabaseMigrator migrator  = new DatabaseMigrator(progressMonitor, fs, config, logService, indexProviderMap, migrationIndexProvider, pageCache, RecordFormatSelector.selectForConfig(config, userLogProvider), tailScanner, jobScheduler);
                    migrator.Migrate(databaseLayout);

                    // Append checkpoint so the last log entry will have the latest version
                    AppendCheckpoint(logFiles, tailScanner);

                    long duration = DateTimeHelper.CurrentUnixTimeMillis() - startTime;
                    log.Info(format("Migration completed in %d s%n", duration / 1000));
                }
            }
            catch (Exception e)
            {
                throw new StoreUpgrader.UnableToUpgradeException("Failure during upgrade", e);
            }
            finally
            {
                life.Shutdown();
                jobScheduler.close();
            }
        }
Esempio n. 15
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     RegisterRoutes(RouteTable.Routes);
     Settings.ConnectionString = ConfigurationManager.AppSettings["ConnectionString"];
     DatabaseMigrator.MigrateDatabase();
     ServiceFactory.Bootstrap();
 }
 public DbController(PawnShopDbContext db, UserManager <User> userManager, RoleManager <Role> roleManager, DatabaseMigrator migrator)
 {
     _roleManager = roleManager;
     _db          = db.GuardIsNotNull(nameof(db));
     _userManager = userManager.GuardIsNotNull(nameof(userManager));
     _roleManager = roleManager.GuardIsNotNull(nameof(roleManager));
     _migrator    = migrator.GuardIsNotNull(nameof(migrator));
 }
Esempio n. 17
0
        private void MigrateToVersion(long version, Assembly assembly)
        {
            var log    = new StringBuilder();
            var logger = new StringLogger(log);
            var db     = new DatabaseMigrator(logger, false, "SqlServer", version, true);

            db.Execute(Settings, assembly);
        }
        private void InitApp()
        {
            var isMigrationNeeded = DatabaseMigrator.CheckForMigration(this);

            if (isMigrationNeeded)
            {
                DatabaseMigrator.ApplyMigration(this);
            }
        }
Esempio n. 19
0
        public virtual void Arrange()
        {
            ConnectionString = IntegrationTest.Configuration.GetConnectionString("FasTnT.Database");
            Connection       = new NpgsqlConnection(ConnectionString);
            Connection.Open();

            DatabaseMigrator.Migrate(ConnectionString);
            Client = IntegrationTest.Client;
        }
        public void ReadRoundhouseTimeoutValue(string configValue, int expectedResult)
        {
            // Arrange
            var configRepoMock = new Mock <IConfigurationRepository>();

            configRepoMock.Setup(m => m.ReadConfigurationValue(ConfigurationKeys.Section, ConfigurationKeys.RoundhouseTimeoutSeconds)).Returns(configValue);
            var config = DatabaseMigrator.ReadRoundhouseTimeoutValue(configRepoMock.Object);

            Assert.That(config, Is.EqualTo(expectedResult));
        }
Esempio n. 21
0
        private static void DropAndCreateDatabase(IConfiguration configuration)
        {
            var connectionString  = SQLiteConnectionStringParser.Parse(configuration.GetConnectionString("DefaultConnection"));
            var connectionFactory = new DefaultConnectionFactory(connectionString);

            var connectionValues = connectionString.ToNameValueCollection();
            var dbFilePath       = connectionValues.Get(SQLiteConnectionStringKeys.DataSource);

            File.Delete(dbFilePath);
            DatabaseMigrator.Migrate(connectionFactory);
        }
Esempio n. 22
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            //初始化实体
            ServiceInitializer.RegisterEntities();
            DatabaseMigrator <EfDbContext, EfConfiguration> .MigrateDatabase();

            RegisterService();
        }
Esempio n. 23
0
        static int Main(string[] args)
        {
            // :Configure: Put this somewhere in your service startup passing your connection string.
            using var migrator = new DatabaseMigrator(new ConsoleStartupLogger());
            var schemaChangingScripts = migrator.PerformMigrations(@"Server=.\SQLExpress;Trusted_Connection=Yes;Database=MigrationDatabase");

            schemaChangingScripts?.SchemaChangingScripts.ForEach(s => Console.WriteLine($"Encountered schema changing script: {Environment.NewLine}{s}"));
            Console.WriteLine("Done with migrations.");
            Console.ReadLine();
            return(0);
        }
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            var migrator = new DatabaseMigrator();

            migrator.Update();

            _container = new WindsorContainer().Install(FromAssembly.This());
            ControllerBuilder.Current.SetControllerFactory(new ControllerFactory(_container.Kernel));
        }
        async public Task ShouldThrowMigrationException(int sqlExceptionNumber)
        {
            using AutoMock mock = AutoMock.GetLoose();
            mock.Mock <IMigrateAsyncWrapper>()
            .Setup(x => x.MigrateAsync(It.IsAny <DatabaseFacade>()))
            .Throws(new SqlExceptionBuilder()
                    .WithErrorNumber(sqlExceptionNumber)
                    .Build());
            DatabaseMigrator migrator = mock.Create <DatabaseMigrator>();

            await Assert.ThrowsAsync <MigrationException>(() => migrator.EnsureMigrated());
        }
Esempio n. 26
0
        static SliceFixture()
        {
            connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
            DatabaseMigrator databaseMigrator = new DatabaseMigrator();

            databaseMigrator.Migrate(connectionString);
            checkpoint = new Checkpoint();
            container  = new Container();
            container.Configure(cfg =>
            {
                cfg.AddRegistry <DomainRegistry>();
            });
        }
        public void Configure()
        {
            BsonSerializer.RegisterSerializer(typeof(DateTime), new DateTimeSerializer(DateTimeKind.Local));

            BsonClassMap.RegisterClassMap <PDV>();
            BsonClassMap.RegisterClassMap <NaturalPeople>();
            BsonClassMap.RegisterClassMap <LegalPeople>();

            if (!DataBaseExists())
            {
                DatabaseMigrator.Migrate(this);
            }
        }
        public static IServiceCollection AddEpcisPersistence(this IServiceCollection services, string connectionString)
        {
            services.AddScoped <IEpcisRequestStore, EpcisRequestStore>();
            services.AddScoped <IEventFetcher, EventFetcher>();
            services.AddScoped <IMasterdataFetcher, MasterdataFetcher>();
            services.AddScoped <ISubscriptionManager, SubscriptionManager>();
            services.AddScoped <IUserManager, UserManager>();
            services.AddScoped(s => OpenConnection(connectionString));

            DefaultTypeMap.MatchNamesWithUnderscores = true;
            DatabaseMigrator.Migrate(connectionString);

            return(services);
        }
Esempio n. 29
0
        public void SetUp()
        {
            string folder = Path.GetDirectoryName(Assembly.GetAssembly(typeof(DatabaseMigratorTests)).CodeBase);

            MigrationsAssembly = Assembly.LoadFrom(new Uri(Path.Combine(folder, "SampleDbMigrations.dll")).LocalPath);
            Settings           = new Dictionary <string, string>
            {
                { "Server", "." },
                { "Database", "TestDb" }
            };
            Log              = new StringBuilder();
            Logger           = new StringLogger(Log);
            DatabaseMigrator = new DatabaseMigrator(Logger, true, "SqlServer", -1, true);
        }
Esempio n. 30
0
        public void GeneratedVersionedEntityDoesntNeedUpdate()
        {
            var databaseMigrator = new DatabaseMigrator();
            var configuration    = new VersionedConfiguration();
            var answerProvider   = new Mock <IAnswerProvider>();

            databaseMigrator.Execute(configuration, connectionString, "System.Data.SqlClient", Enumerable.Empty <string>(), Enumerable.Empty <string>(), Enumerable.Empty <KeyValuePair <string, string> >(), answerProvider.Object);

            var scriptGenerator = new ScriptGenerator();
            var script          = scriptGenerator.Generate(configuration, connectionString, "System.Data.SqlClient", Enumerable.Empty <string>(), Enumerable.Empty <string>(), Enumerable.Empty <KeyValuePair <string, string> >(), answerProvider.Object);

            this.output.WriteLine(script);
            Assert.True(string.IsNullOrWhiteSpace(script));
        }
Esempio n. 31
0
        protected override void InitializeModules()
        {
            // NOTE: Method from the base class is not called to avoid NotSupportedException

            var dbConnectionFactory = Container.Resolve <IDbConnectionFactory>();

            DatabaseMigrator.Migrate(dbConnectionFactory);

            var regionManager = Container.Resolve <IRegionManager>();

            regionManager.RegisterViewWithRegion("ToolbarRegion", typeof(Views.ToolbarView));
            regionManager.RegisterViewWithRegion("NavigationRegion", typeof(Notebook.Views.NavbarView));
            regionManager.RegisterViewWithRegion("ContentRegion", typeof(Notebook.Views.TabContentView));
        }