protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            throw new NotSupportedException("FirebirdSql Not Implemented!");
        }
 protected virtual void Generate(
     [NotNull] EnsureSchemaOperation operation,
     [CanBeNull] IModel model,
     [NotNull] MigrationCommandListBuilder builder)
 {
     throw new NotImplementedException();
 }
Example #3
0
        protected override void Generate(EnsureSchemaOperation operation, [CanBeNull] IModel model, MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            // PostgreSQL 9.2 and below unfortunately doesn't have CREATE SCHEMA IF NOT EXISTS.
            // An attempted workaround by creating a function which checks and creates the schema, and then invoking it, failed because
            // of #641 (pg_temp doesn't exist yet).
            // So the only workaround for pre-9.3 PostgreSQL, at least for now, is to define all tables in the public schema.
            // TODO: Since Npgsql 3.1 we can now ensure schema with a function in pg_temp

            // NOTE: Technically the public schema can be dropped so we should also be ensuring it, but this is a rare case and
            // we want to allow pre-9.3
            if (operation.Name == "public")
            {
                return;
            }

            builder
            .Append("CREATE SCHEMA IF NOT EXISTS ")
            .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Name))
            .AppendLine(';');

            EndStatement(builder);
        }
Example #4
0
        protected override void Generate(
            EnsureSchemaOperation operation,
            IModel model,
            MigrationCommandListBuilder builder)
        {
            ThrowIf.Argument.IsNull(operation, "operation");
            ThrowIf.Argument.IsNull(builder, "builder");

            throw new NotImplementedException();
        }
        protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            builder
            .Append("CREATE DATABASE IF NOT EXISTS ")
            .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Name))
            .Append(Dependencies.SqlGenerationHelper.StatementTerminator)
            .AppendLine(Dependencies.SqlGenerationHelper.BatchTerminator);
            EndStatement(builder);
        }
Example #6
0
        public virtual OperationBuilder <EnsureSchemaOperation> EnsureSchema(string name)
        {
            Check.NotEmpty(name, nameof(name));

            var operation = new EnsureSchemaOperation
            {
                Name = name
            };

            Operations.Add(operation);

            return(new OperationBuilder <EnsureSchemaOperation>(operation));
        }
Example #7
0
        protected override void Generate(
            [NotNull] EnsureSchemaOperation operation,
            [CanBeNull] IModel model,
            [NotNull] MigrationCommandListBuilder builder)
        {
            ThrowIf.Argument.IsNull(operation, "operation");
            ThrowIf.Argument.IsNull(builder, "builder");

            builder
            .Append("CREATE DATABASE IF NOT EXISTS ")
            .Append(_sqlGenerationHelper.DelimitIdentifier(operation.Name));

            EndStatement(builder, suppressTransaction: true);
        }
        protected override void Generate(
            [NotNull] EnsureSchemaOperation operation,
            [CanBeNull] IModel model,
            [NotNull] MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            builder
            .Append("CREATE DATABASE IF NOT EXISTS ")
            .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Name));

            EndStatement(builder, suppressTransaction: true);
        }
        protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            builder
            .AppendLine($"CREATE OR REPLACE FUNCTION mysql_ef_ensure_schema() RETURNS VOID")
            .AppendLine($"BEGIN")
            .AppendLine($"    IF NOT EXISTS(SELECT 1 FROM `information_schema`.`SCHEMATA` where  `SCHEMA_NAME` = '{ operation.Name }')")
            .AppendLine($"    THEN")
            .AppendLine($"        CREATE SCHEMA { operation.Name };")
            .AppendLine($"    END IF;")
            .AppendLine($"END")
            .AppendLine(SqlGenerationHelper.BatchTerminator);
        }
        protected virtual void Generate([NotNull] EnsureSchemaOperation operation, [NotNull] IndentedStringBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            builder
            .Append(".EnsureSchema(")
            .Append(_code.Literal(operation.Name))
            .Append(")");

            using (builder.Indent())
            {
                Annotations(operation.Annotations, builder);
            }
        }
        protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            builder
            .AppendLine($"DROP PROCEDURE IF EXISTS mysql_ef_ensure_schema;")
            .AppendLine($"CREATE PROCEDURE mysql_ef_ensure_schema()")
            .AppendLine($"BEGIN")
            .AppendLine($"    IF NOT EXISTS (SELECT 1 FROM `INFORMATION_SCHEMA`.`SCHEMATA` WHERE `SCHEMA_NAME` = '{ operation.Name }')")
            .AppendLine($"    THEN")
            .AppendLine($"        CREATE SCHEMA `{ operation.Name }`;")
            .AppendLine($"    END IF;")
            .AppendLine($"END;")
            .AppendLine(SqlGenerationHelper.BatchTerminator);
        }
Example #12
0
        protected override void Generate(EnsureSchemaOperation operation, IModel model, SqlBatchBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            if (string.Equals(operation.Name, "DBO", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            builder
            .Append("IF SCHEMA_ID(N")
            .Append(Sql.GenerateLiteral(operation.Name))
            .Append(") IS NULL EXEC(N'CREATE SCHEMA ")
            .Append(Sql.DelimitIdentifier(operation.Name))
            .Append("')");
        }
        protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
        {
            var keySpaceConfiguration = model.GetKeyspace(operation.Name);

            if (keySpaceConfiguration == null)
            {
                keySpaceConfiguration = new KeyspaceReplicationSimpleStrategyClass(2);
            }

            builder
            .Append("CREATE KEYSPACE IF NOT EXISTS ")
            .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Name));
            if (keySpaceConfiguration != null)
            {
                builder.Append("WITH REPLICATION = { ")
                .Append("'class'")
                .Append(" : ");
                switch (keySpaceConfiguration.ReplicationClass)
                {
                case KeyspaceReplicationClasses.SimpleStrategy:
                    var simpleStrategy = (KeyspaceReplicationSimpleStrategyClass)keySpaceConfiguration;
                    builder.Append("'SimpleStrategy'")
                    .Append(" , ")
                    .Append("'replication_factor'")
                    .Append($" : {simpleStrategy.ReplicationFactor}")
                    .AppendLine(" } ");
                    break;

                case KeyspaceReplicationClasses.NetworkTopologyStrategy:
                    var networkStrategy = (KeyspaceReplicationNetworkTopologyStrategyClass)keySpaceConfiguration;
                    builder.Append("'NetworkTopologyStrategy'");
                    foreach (var kvp in networkStrategy.DataCenters)
                    {
                        builder.AppendLine($" , '{kvp.Key}' : {kvp.Value}");
                    }

                    builder.Append(" } ");
                    break;
                }
            }

            builder.Append(Dependencies.SqlGenerationHelper.StatementTerminator);
            EndStatement(builder);
        }
        protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            if (string.Equals(operation.Name, "DBO", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            builder
            .Append("IF SCHEMA_ID(")
            .Append(SqlGenerationHelper.GenerateLiteral(operation.Name))
            .Append(") IS NULL EXEC(N'CREATE SCHEMA ")
            .Append(SqlGenerationHelper.DelimitIdentifier(operation.Name))
            .Append(SqlGenerationHelper.StatementTerminator)
            .Append("')")
            .AppendLine(SqlGenerationHelper.StatementTerminator)
            .EndCommand();
        }
Example #15
0
        public void When_Ensure_Schema_Operation_Then_CQL_Is_Returned()
        {
            Action <ModelBuilder> firstModelBuilderCallback = (modelBuilder) =>
            {
                modelBuilder.EnsureKeyspaceCreated(new KeyspaceReplicationSimpleStrategyClass(2));
            };
            Action <ModelBuilder> secondModelBuilderCallback = (modelBuilder) =>
            {
                modelBuilder.EnsureKeyspaceCreated(new KeyspaceReplicationNetworkTopologyStrategyClass(new Dictionary <string, int>
                {
                    { "datacenter1", 1 },
                    { "datacenter2", 2 }
                }));
            };
            var ensureSchemaOperation = new EnsureSchemaOperation
            {
                Name = "cv"
            };
            var firstSql  = BuildSql(firstModelBuilderCallback, ensureSchemaOperation);
            var secondSql = BuildSql(secondModelBuilderCallback, ensureSchemaOperation);

            Assert.Equal("CREATE KEYSPACE IF NOT EXISTS \"cv\"WITH REPLICATION = { 'class' : 'SimpleStrategy' , 'replication_factor' : 2 } \r\n;", firstSql);
            Assert.Equal("CREATE KEYSPACE IF NOT EXISTS \"cv\"WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy' , 'datacenter1' : 1\r\n , 'datacenter2' : 2\r\n } ;", secondSql);
        }
Example #16
0
 protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
 }
 protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
 => throw new NotSupportedException("Schemas are not supported by Firebird.");
Example #18
0
 protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
     Check.NotNull(operation, nameof(operation));
     Check.NotNull(builder, nameof(builder));
 }
 protected override void Generate(EnsureSchemaOperation operation, IModel model, SqlBatchBuilder builder)
 {
 }
 protected abstract void Generate(
     [NotNull] EnsureSchemaOperation operation,
     [CanBeNull] IModel model,
     [NotNull] SqlBatchBuilder builder);
 protected override void Generate(EnsureSchemaOperation operation, IModel model, RelationalCommandListBuilder builder)
 {
     throw new NotSupportedException("SQL Server Compact does not support schemas.");
 }
Example #22
0
 protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
     throw new NotSupportedException(SqliteStrings.SchemasNotSupported);
 }
 protected override void Generate(EnsureSchemaOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
     throw new NotSupportedException("Firebird doesn't support EnsureSchema operation.");
 }
 protected override void Generate(EnsureSchemaOperation operation, IModel model, SqlBatchBuilder builder)
 {
     throw new NotSupportedException(Strings.SchemasNotSupported);
 }