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