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)); }
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"); }