Example #1
0
        public async Task <NpgsqlConnectionFactory> CreateDatabaseAsync(
            CancellationToken cancellationToken)
        {
            // Create test database.
            var databaseSuffix = Guid.NewGuid();
            var databaseName   = $"sequence_{databaseSuffix:N}";

            string connectionString;

            using (var connection = new NpgsqlConnection(_connectionString))
            {
                await connection.OpenAsync(cancellationToken);

                await connection.ExecuteAsync($"CREATE DATABASE {databaseName};");

                connection.ChangeDatabase(databaseName);
                connectionString = connection.ConnectionString;
            }

            // Apply migrations.
            var postgresOptions = new PostgresOptions {
                ConnectionString = connectionString
            };
            var options    = Options.Create(postgresOptions);
            var logger     = NullLogger <PostgresMigrations> .Instance;
            var migrations = new PostgresMigrations(options, logger);
            await migrations.UpgradeDatabaseAsync(cancellationToken);

            return(new NpgsqlConnectionFactory(options));
        }
Example #2
0
 public void GetMigrationNameFromFilepathWorks()
 {
     PostgresMigrations.GetMigrationName("xyz").ShouldBe("xyz");
     PostgresMigrations.GetMigrationName(".xyz").ShouldBe("");
     PostgresMigrations.GetMigrationName(".x.y.z").ShouldBe("");
     PostgresMigrations.GetMigrationName("x.y.z").ShouldBe("x");
     PostgresMigrations.GetMigrationName("c:\\somedir\\x.y.z").ShouldBe("x");
 }