public async Task CreateDatabase(CancellationToken cancellationToken = default) { await _sqlServerContainer.TryStart(cancellationToken).WithTimeout(3 * 60 * 1000); var policy = Policy .Handle <SqlException>() .WaitAndRetryAsync(3, i => TimeSpan.FromSeconds(1)); await policy.ExecuteAsync(async() => { using (var connection = CreateConnection()) { await connection.OpenAsync(cancellationToken).NotOnCapturedContext(); var createCommand = $@"CREATE DATABASE [{_databaseName}] ALTER DATABASE [{_databaseName}] SET SINGLE_USER ALTER DATABASE [{_databaseName}] SET COMPATIBILITY_LEVEL=110 ALTER DATABASE [{_databaseName}] SET MULTI_USER"; using (var command = new SqlCommand(createCommand, connection)) { await command.ExecuteNonQueryAsync(cancellationToken).NotOnCapturedContext(); } } }); }
public async Task CreateDatabase(CancellationToken cancellationToken = default) { await _sqlServerContainer.TryStart(cancellationToken).WithTimeout(3 * 60 * 1000); using (var connection = CreateConnection()) { await connection.OpenAsync(cancellationToken).NotOnCapturedContext(); using (var command = new SqlCommand($"CREATE DATABASE [{_databaseName}]", connection)) { await command.ExecuteNonQueryAsync(cancellationToken).NotOnCapturedContext(); } } }
public async Task CreateDatabase(CancellationToken cancellationToken = default) { await _sqlServerContainer.TryStart(cancellationToken).WithTimeout(3 * 60 * 1000); using (var connection = CreateConnection()) { await connection.OpenAsync(cancellationToken).NotOnCapturedContext(); var createCommand = $@"CREATE DATABASE [{_databaseName}] ALTER DATABASE [{_databaseName}] SET SINGLE_USER ALTER DATABASE [{_databaseName}] SET COMPATIBILITY_LEVEL=110 ALTER DATABASE [{_databaseName}] SET MULTI_USER"; using (var command = new SqlCommand(createCommand, connection)) { await command.ExecuteNonQueryAsync(cancellationToken).NotOnCapturedContext(); } } }
public override async Task CreateDatabase(CancellationToken cancellationToken = default(CancellationToken)) { await _postgresContainer.TryStart(cancellationToken).WithTimeout(60 * 1000 * 3); await base.CreateDatabase(cancellationToken); }