public async Task <MySqlStreamStore> GetUninitializedMySqlStreamStore()
        {
            await CreateDatabase();

            var settings = new MySqlStreamStoreSettings(ConnectionString);

            return(new MySqlStreamStore(settings));
        }
        public async Task <MySqlStreamStore> GetUninitializedMySqlStreamStore(bool scavengeAsynchronously = false)
        {
            await CreateDatabase();

            var settings = new MySqlStreamStoreSettings(ConnectionString)
            {
                ScavengeAsynchronously = scavengeAsynchronously
            };

            return(new MySqlStreamStore(settings));
        }
        public async Task <MySqlStreamStore> GetMySqlStreamStore()
        {
            await CreateDatabase();

            var settings = new MySqlStreamStoreSettings(ConnectionString);

            var mySqlStreamStore = new MySqlStreamStore(settings);
            await mySqlStreamStore.CreateSchemaIfNotExists();

            return(mySqlStreamStore);
        }
示例#4
0
        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);
        }