private async Task Initialize() { if (!_instance.IsRunning) { _manager.Start(); } using (var connection = _instance.CreateConnection()) { await connection.OpenAsync(); var tempPath = Environment.GetEnvironmentVariable("Temp"); var createDatabase = $"CREATE DATABASE [{_databaseName}] on (name='{_databaseName}', " + $"filename='{tempPath}\\{_databaseName}.mdf')"; using (var command = new SqlCommand(createDatabase, connection)) { await command.ExecuteNonQueryAsync(); } } var sqlConnectionStringBuilder = _instance.CreateConnectionStringBuilder(); sqlConnectionStringBuilder.InitialCatalog = _databaseName; ConnectionString = sqlConnectionStringBuilder.ToString(); var settings = new MsSqlStreamStoreV3Settings(ConnectionString); _msSqlStreamStoreV3 = new MsSqlStreamStoreV3(settings); await _msSqlStreamStoreV3.CreateSchemaIfNotExists(); }
private async Task <IStreamStore> GetStreamStore(string schema) { var settings = new MsSqlStreamStoreV3Settings(ConnectionString) { Schema = schema, DisableDeletionTracking = _disableDeletionTracking }; var store = new MsSqlStreamStoreV3(settings); await store.CreateSchemaIfNotExists(); return(store); }
public MsSqlStreamStoreV3 CreateMsSqlStreamStore() { var settings = new MsSqlStreamStoreV3Settings(_configuration.ConnectionString) { DisableDeletionTracking = _configuration.DisableDeletionTracking }; if (_configuration.Schema != null) { settings.Schema = _configuration.Schema; } return(new MsSqlStreamStoreV3(settings)); }
public static async Task WithSqlStreamStore() { var connectionString = "Server=(local);Database=SqlStreamStoreDemo;Trusted_Connection=True;MultipleActiveResultSets=true"; var settings = new MsSqlStreamStoreV3Settings(connectionString); var streamStore = new MsSqlStreamStoreV3(settings); await streamStore.CreateSchemaIfNotExists(); repository = new SqlStreamStoreRepository <Counter>(streamStore); var counterId = Guid.Parse("fbb0f16b-646a-45d3-a1ee-596217897b62"); await CreateAndSaveCounter(counterId); await LoadAndUpdateCounter(counterId); }
private void ConfigureMssql2019() { CreateMsSqlDatabaseUnlessExists(); var connectionString = "Server=localhost;Database=memstate;User Id=sa;Password=abc123ABC;"; _connection = new SqlConnection(connectionString); var settings = new MsSqlStreamStoreV3Settings(connectionString); settings.Schema = "memstate"; var store = new MsSqlStreamStoreV3(settings); store.CreateSchemaIfNotExists().GetAwaiter().GetResult(); _streamStore = store; }
private MsSqlStreamStoreV3 GetStore() { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); var environment = Environment.GetEnvironmentVariable("NETCORE_ENVIRONMENT"); var isDevelopment = string.Equals(environment, "development", StringComparison.OrdinalIgnoreCase); if (isDevelopment) { configurationBuilder.AddUserSecrets(Assembly.GetCallingAssembly()); } var configuration = configurationBuilder.Build(); var connectionString = configuration["EventStore:SqlStreamStore:ConnectionString"]; var settings = new MsSqlStreamStoreV3Settings(connectionString); var store = new MsSqlStreamStoreV3(settings); return(store); }
private static async Task <IStreamStore> CreateMssqlStreamStore( string connectionString, string schema, CancellationToken cancellationToken) { var connectionStringBuilder = new SqlConnectionStringBuilder(connectionString); using (var connection = new SqlConnection(new SqlConnectionStringBuilder(connectionString) { InitialCatalog = "master" }.ConnectionString)) { await connection.OpenAsync(cancellationToken).ConfigureAwait(false); using (var command = new SqlCommand( $@" IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = N'{connectionStringBuilder.InitialCatalog}') BEGIN CREATE DATABASE [{connectionStringBuilder.InitialCatalog}] END; ", connection)) { await command.ExecuteNonQueryAsync(cancellationToken).ConfigureAwait(false); } } var settings = new MsSqlStreamStoreV3Settings(connectionString); if (schema != null) { settings.Schema = schema; } var streamStore = new MsSqlStreamStoreV3(settings); await streamStore.CreateSchemaIfNotExists(cancellationToken); return(streamStore); }
private int OnExecute(CommandLineApplication app) { if (string.IsNullOrEmpty(SQLDialect) || string.IsNullOrEmpty(Output)) { app.ShowHelp(); return(0); } var exitCode = 0; switch (SQLDialect.ToLowerInvariant()) { case "mssqlv2": #pragma warning disable 618 var mssqlV2Settings = new MsSqlStreamStoreSettings(new SqlConnectionStringBuilder { DataSource = "tcp:0.0.0.0,1433" }.ConnectionString); if (!string.IsNullOrEmpty(Schema)) { mssqlV2Settings.Schema = Schema; } if (CreateSchema) { var script = string.Join( Environment.NewLine, $@"IF NOT EXISTS ( SELECT schema_name FROM information_schema.schemata WHERE schema_name = '{Schema}' ) BEGIN EXEC sp_executesql N'CREATE SCHEMA {Schema}' END", new MsSqlStreamStore(mssqlV2Settings).GetSchemaCreationScript()); File.WriteAllText(Output, script); } else { File.WriteAllText(Output, new MsSqlStreamStore(mssqlV2Settings).GetSchemaCreationScript()); } #pragma warning restore 618 break; case "mssqlv3": var mssqlV3Settings = new MsSqlStreamStoreV3Settings(new SqlConnectionStringBuilder { DataSource = "tcp:0.0.0.0,1433" }.ConnectionString); if (!string.IsNullOrEmpty(Schema)) { mssqlV3Settings.Schema = Schema; } if (CreateSchema) { var script = string.Join( Environment.NewLine, $@"IF NOT EXISTS ( SELECT schema_name FROM information_schema.schemata WHERE schema_name = '{Schema}' ) BEGIN EXEC sp_executesql N'CREATE SCHEMA {Schema}' END", new MsSqlStreamStoreV3(mssqlV3Settings).GetSchemaCreationScript()); File.WriteAllText(Output, script); } else { File.WriteAllText(Output, new MsSqlStreamStoreV3(mssqlV3Settings).GetSchemaCreationScript()); } break; case "mysql": var mysqlSettings = new MySqlStreamStoreSettings(new MySqlConnectionStringBuilder { Server = "0.0.0.0" }.ConnectionString); if (!string.IsNullOrEmpty(Schema)) { Log.Information("The optional database schema does not apply to the mysql dialect and can be omitted: {Schema}", Schema); } File.WriteAllText(Output, new MySqlStreamStore(mysqlSettings).GetSchemaCreationScript()); break; case "postgres": var postgresSettings = new PostgresStreamStoreSettings(new NpgsqlConnectionStringBuilder { Host = "0.0.0.0" }.ConnectionString); if (!string.IsNullOrEmpty(Schema)) { postgresSettings.Schema = Schema; } if (CreateSchema) { var script = string.Join( Environment.NewLine, $"CREATE SCHEMA IF NOT EXISTS {Schema};", new PostgresStreamStore(postgresSettings).GetSchemaCreationScript() ); File.WriteAllText(Output, script); } else { File.WriteAllText(Output, new PostgresStreamStore(postgresSettings).GetSchemaCreationScript()); } break; default: Log.Error("The SQL dialect was not recognized: {SQLDialect}", SQLDialect); exitCode = 1; break; } return(exitCode); }