public PlatformDatabaseCreationRepositoryFinder(PlatformDatabaseCreationOptions options)
        {
            var cata   = options.GetBuilder(PlatformDatabaseCreation.DefaultCatalogueDatabaseName);
            var export = options.GetBuilder(PlatformDatabaseCreation.DefaultDataExportDatabaseName);

            _linkedRepositoryProvider = new LinkedRepositoryProvider(cata.ConnectionString, export.ConnectionString);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates new databases on the given server for RDMP platform databases
        /// </summary>
        /// <param name="options"></param>
        public void CreatePlatformDatabases(PlatformDatabaseCreationOptions options)
        {
            DiscoveredServerHelper.CreateDatabaseTimeoutInSeconds = options.CreateDatabaseTimeout;

            Create(DefaultCatalogueDatabaseName, new CataloguePatcher(), options);
            Create(DefaultDataExportDatabaseName, new DataExportPatcher(), options);

            var dqe     = Create(DefaultDQEDatabaseName, new DataQualityEnginePatcher(), options);
            var logging = Create(DefaultLoggingDatabaseName, new LoggingDatabasePatcher(), options);

            CatalogueRepository.SuppressHelpLoading = true;

            var repo = new PlatformDatabaseCreationRepositoryFinder(options);

            if (!options.SkipPipelines)
            {
                var creator = new CataloguePipelinesAndReferencesCreation(repo, logging, dqe);
                creator.Create();
            }

            if (options.ExampleDatasets)
            {
                var examples = new ExampleDatasetsCreation(new ThrowImmediatelyActivator(repo, null), repo);
                var server   = new DiscoveredServer(options.GetBuilder("ExampleData"));

                examples.Create(server.GetCurrentDatabase(), new ThrowImmediatelyCheckNotifier()
                {
                    WriteToConsole = true
                }, options);
            }
        }
Ejemplo n.º 3
0
        private SqlConnectionStringBuilder Create(string databaseName, IPatcher patcher, PlatformDatabaseCreationOptions options)
        {
            SqlConnection.ClearAllPools();

            var builder = options.GetBuilder(databaseName);

            DiscoveredDatabase db = new DiscoveredServer(builder).ExpectDatabase(builder.InitialCatalog);

            if (options.DropDatabases && db.Exists())
            {
                Console.WriteLine("Dropping Database:" + builder.InitialCatalog);
                db.Drop();
            }

            MasterDatabaseScriptExecutor executor = new MasterDatabaseScriptExecutor(db);

            executor.BinaryCollation = options.BinaryCollation;
            executor.CreateAndPatchDatabase(patcher, new AcceptAllCheckNotifier());
            Console.WriteLine("Created " + builder.InitialCatalog + " on server " + builder.DataSource);

            return(builder);
        }