Exemple #1
0
        public override void Generate(RenameSequenceOperation operation, IModel model, SqlBatchBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            var separate = false;
            var name     = operation.Name;

            if (operation.NewName != null)
            {
                var qualifiedName = new StringBuilder();
                if (operation.Schema != null)
                {
                    qualifiedName
                    .Append(operation.Schema)
                    .Append(".");
                }
                qualifiedName.Append(operation.Name);

                Rename(qualifiedName.ToString(), operation.NewName, builder);

                separate = true;
                name     = operation.NewName;
            }

            if (operation.NewSchema != null)
            {
                if (separate)
                {
                    builder.AppendLine(_sql.BatchCommandSeparator);
                }

                Transfer(operation.NewSchema, operation.Schema, name, builder);
            }
        }
Exemple #2
0
        protected override void Generate(RenameSequenceOperation operation, IModel model, RelationalCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            var separate = false;
            var name     = operation.Name;

            if (operation.NewName != null)
            {
                Rename(operation.Schema, operation.Name, operation.NewName, "SEQUENCE", builder);

                separate = true;
                name     = operation.NewName;
            }

            if (operation.NewSchema != null)
            {
                if (separate)
                {
                    builder.AppendLine(SqlGenerationHelper.StatementTerminator);
                }

                Transfer(operation.NewSchema, operation.Schema, name, "SEQUENCE", builder);
            }
        }
        protected override void Generate(RenameSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            var name = operation.Name;

            if (operation.NewName != null)
            {
                var qualifiedName = new StringBuilder();
                if (operation.Schema != null)
                {
                    qualifiedName
                    .Append(operation.Schema)
                    .Append(".");
                }
                qualifiedName.Append(operation.Name);

                Rename(qualifiedName.ToString(), operation.NewName, builder);

                name = operation.NewName;
            }

            if (operation.NewSchema != null)
            {
                Transfer(operation.NewSchema, operation.Schema, name, builder);
            }

            builder.EndCommand();
        }
Exemple #4
0
        public void Dispatches_visitor()
        {
            var operation = new RenameSequenceOperation("dbo.MySequence", "RenamedSequence");

            var sqlGeneratorMock = MigrationsTestHelpers.MockSqlGenerator();
            var sqlBuilder       = new SqlBatchBuilder();

            operation.GenerateSql(sqlGeneratorMock.Object, sqlBuilder);

            sqlGeneratorMock.Verify(g => g.Generate(operation, sqlBuilder), Times.Once());

            var codeGeneratorMock = new Mock <MigrationCodeGenerator>(new Mock <ModelCodeGenerator>().Object);
            var codeBuilder       = new IndentedStringBuilder();

            operation.GenerateCode(codeGeneratorMock.Object, codeBuilder);

            codeGeneratorMock.Verify(g => g.Generate(operation, codeBuilder), Times.Once());

            var visitorMock = new Mock <MigrationOperationVisitor <object> >();
            var context     = new object();

            operation.Accept(visitorMock.Object, context);

            visitorMock.Verify(v => v.Visit(operation, context), Times.Once());
        }
Exemple #5
0
        protected override void Generate(RenameSequenceOperation operation, [CanBeNull] IModel model, MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            var name = operation.Name;

            if (operation.NewName != null)
            {
                var qualifiedName = new StringBuilder();
                if (operation.Schema != null)
                {
                    qualifiedName
                    .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Schema))
                    .Append(".");
                }
                qualifiedName.Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Name));

                Rename(qualifiedName.ToString(), Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.NewName), "SEQUENCE", builder);

                name = operation.NewName;
            }

            if (operation.NewSchema != null)
            {
                Transfer(operation.NewSchema, operation.Schema, name, "SEQUENCE", builder);
            }

            EndStatement(builder);
        }
        protected override void Generate(RenameSequenceOperation operation, IModel model, RelationalCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            var separate = false;
            var name     = operation.Name;

            if (operation.NewName != null)
            {
                var qualifiedName = new StringBuilder();
                if (operation.Schema != null)
                {
                    qualifiedName
                    .Append(operation.Schema)
                    .Append(".");
                }
                qualifiedName.Append(operation.Name);

                Rename(qualifiedName.ToString(), operation.NewName, builder);

                separate = true;
                name     = operation.NewName;
            }

            if (operation.NewSchema != null)
            {
                if (separate)
                {
                    builder.AppendLine(SqlGenerationHelper.StatementTerminator);
                }

                Transfer(operation.NewSchema, operation.Schema, name, builder);
            }
        }
        protected override void Generate(RenameSequenceOperation operation, IModel model, SqlBatchBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            GenerateRename(operation.Name, operation.Schema, operation.NewName, "OBJECT", builder);
        }
Exemple #8
0
 public override void Generate(
     RenameSequenceOperation renameSequenceOperation,
     IndentedStringBuilder stringBuilder)
 {
     throw new NotSupportedException(Strings.FormatMigrationOperationNotSupported(
                                         GetType(), renameSequenceOperation.GetType()));
 }
 protected virtual void Generate(
     [NotNull] RenameSequenceOperation operation,
     [CanBeNull] IModel model,
     [NotNull] MigrationCommandListBuilder builder)
 {
     throw new NotImplementedException();
 }
Exemple #10
0
        public void Create_and_initialize_operation()
        {
            var operation = new RenameSequenceOperation("dbo.MySequence", "RenamedSequence");

            Assert.Equal("dbo.MySequence", operation.SequenceName);
            Assert.Equal("RenamedSequence", operation.NewSequenceName);
            Assert.False(operation.IsDestructiveChange);
        }
Exemple #11
0
        public void Generate_with_move_sequence_is_not_supported()
        {
            var operation = new RenameSequenceOperation("EpisodeSequence", "RenamedSchema");

            Assert.Equal(
                Strings.FormatMigrationOperationNotSupported(typeof(SQLiteMigrationOperationSqlGenerator), operation.GetType()),
                Assert.Throws <NotSupportedException>(() => Generate(operation)).Message);
        }
        public override void Visit(RenameSequenceOperation renameSequenceOperation, DatabaseModel databaseModel)
        {
            Check.NotNull(renameSequenceOperation, "renameSequenceOperation");
            Check.NotNull(databaseModel, "databaseModel");

            var sequence = databaseModel.GetSequence(renameSequenceOperation.SequenceName);

            sequence.Name = new SchemaQualifiedName(renameSequenceOperation.NewSequenceName, renameSequenceOperation.SequenceName.Schema);
        }
        public void Generate_when_rename_sequence_operation()
        {
            var operation = new RenameSequenceOperation("dbo.MySequence", "RenamedSequence");

            Assert.Equal(
                @"RenameSequence(""dbo.MySequence"", ""RenamedSequence"")",
                CSharpMigrationCodeGenerator.Generate(operation));

            GenerateAndValidateCode(operation);
        }
Exemple #14
0
        public override void Generate(RenameSequenceOperation renameSequenceOperation, IndentedStringBuilder stringBuilder)
        {
            Check.NotNull(renameSequenceOperation, "renameSequenceOperation");
            Check.NotNull(stringBuilder, "stringBuilder");

            GenerateRename(
                renameSequenceOperation.SequenceName,
                renameSequenceOperation.NewSequenceName,
                "OBJECT",
                stringBuilder);
        }
        public void Visit_with_rename_sequence_operation()
        {
            var model     = new DatabaseModel();
            var operation = new RenameSequenceOperation("dbo.MySequence", "RenamedSequence");

            model.AddSequence(new Sequence("dbo.MySequence", "bigint", 0, 1));
            operation.Accept(new DatabaseModelModifier(), model);

            Assert.Equal(1, model.Sequences.Count);
            Assert.Equal("dbo.RenamedSequence", model.Sequences[0].Name);
        }
Exemple #16
0
        public override void Generate(RenameSequenceOperation renameSequenceOperation, SqlBatchBuilder batchBuilder)
        {
            Check.NotNull(renameSequenceOperation, "renameSequenceOperation");
            Check.NotNull(batchBuilder, "batchBuilder");

            GenerateRename(
                renameSequenceOperation.SequenceName,
                renameSequenceOperation.NewSequenceName,
                "OBJECT",
                batchBuilder);
        }
Exemple #17
0
        public override void Generate(RenameSequenceOperation renameSequenceOperation, IndentedStringBuilder stringBuilder)
        {
            Check.NotNull(renameSequenceOperation, "renameSequenceOperation");
            Check.NotNull(stringBuilder, "stringBuilder");

            stringBuilder
            .Append("RenameSequence(")
            .Append(GenerateLiteral(renameSequenceOperation.SequenceName))
            .Append(", ")
            .Append(GenerateLiteral(renameSequenceOperation.NewSequenceName))
            .Append(")");
        }
 protected override void Generate(
     RenameSequenceOperation operation,
     IModel model,
     MigrationCommandListBuilder builder)
 {
     if (operation.NewName != null)
     {
         builder
         .Append("RENAME ")
         .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Name))
         .Append(" TO ")
         .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.NewName))
         .EndCommand();
     }
 }
Exemple #19
0
        public virtual OperationBuilder <RenameSequenceOperation> RenameSequence(string name, string schema = null, string newName = null, string newSchema = null)
        {
            Check.NotEmpty(name, nameof(name));

            var operation = new RenameSequenceOperation
            {
                Name      = name,
                Schema    = schema,
                NewName   = newName,
                NewSchema = newSchema
            };

            Operations.Add(operation);

            return(new OperationBuilder <RenameSequenceOperation>(operation));
        }
Exemple #20
0
        protected virtual void Generate([NotNull] RenameSequenceOperation operation, [NotNull] IndentedStringBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            builder.AppendLine(".RenameSequence(");

            using (builder.Indent())
            {
                builder
                .Append("name: ")
                .Append(_code.Literal(operation.Name));

                if (operation.Schema != null)
                {
                    builder
                    .AppendLine(",")
                    .Append("schema: ")
                    .Append(_code.Literal(operation.Schema));
                }

                if (operation.NewName != null)
                {
                    builder
                    .AppendLine(",")
                    .Append("newName: ")
                    .Append(_code.Literal(operation.NewName));
                }

                if (operation.NewSchema != null)
                {
                    builder
                    .AppendLine(",")
                    .Append("newSchema: ")
                    .Append(_code.Literal(operation.NewSchema));
                }

                builder.Append(")");

                Annotations(operation.Annotations, builder);
            }
        }
Exemple #21
0
        protected override void Generate(RenameSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
        {
            //Tanks Jean!
            builder.AppendLine("EXECUTE BLOCK")
            .AppendLine("AS")
            .AppendLine("DECLARE val INT = 0;")
            .AppendLine("BEGIN")
            .AppendLine($"SELECT GEN_ID({operation.Name}, 0) FROM RDB$DATABASE INTO :val;");

            if (_options.Settings.ServerVersion.Major >= 2)
            {
                builder.AppendLine($"EXECUTE STATEMENT 'CREATE SEQUENCE {Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.NewName)}';")
                .AppendLine($"EXECUTE STATEMENT 'ALTER SEQUENCE {Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.NewName)} RESTART WITH ' || :val;");
            }
            else
            {
                builder.AppendLine($"EXECUTE STATEMENT 'CREATE GENERATOR {Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.NewName)}';")
                .AppendLine($"EXECUTE STATEMENT 'SET GENERATOR {Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.NewName)} TO ' || :val;");
            }

            builder.AppendLine("END");
        }
Exemple #22
0
        protected override void Generate(RenameSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
        {
            Check.NotNull(operation, nameof(operation));
            Check.NotNull(builder, nameof(builder));

            var name = operation.Name;

            if (operation.NewName != null &&
                operation.NewName != operation.Name)
            {
                Rename(operation.Schema, operation.Name, operation.NewName, "SEQUENCE", builder);

                name = operation.NewName;
            }

            if (operation.NewSchema != null &&
                operation.NewSchema != operation.Schema)
            {
                Transfer(operation.NewSchema, operation.Schema, name, "SEQUENCE", builder);
            }

            EndStatement(builder);
        }
 protected override void Generate(RenameSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
     throw new NotSupportedException("MySql doesn't support sequence operation.");
 }
Exemple #24
0
 protected override void Generate(RenameSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
     throw new NotSupportedException(SqliteStrings.SequencesNotSupported);
 }
 protected override void Generate(RenameSequenceOperation operation, IModel model, RelationalCommandListBuilder builder)
 {
 }
Exemple #26
0
 public abstract void Generate(
     [NotNull] RenameSequenceOperation operation,
     [CanBeNull] IModel model,
     [NotNull] SqlBatchBuilder builder);
Exemple #27
0
 public abstract void Generate([NotNull] RenameSequenceOperation renameSequenceOperation, [NotNull] IndentedStringBuilder stringBuilder);
 protected override void Generate(RenameSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
 => throw new NotSupportedException("Renaming sequence is not supported by Firebird.");
Exemple #29
0
 protected override void Generate(RenameSequenceOperation operation, IModel model, MigrationCommandListBuilder builder)
 {
     throw new NotSupportedException(string.Format(NotSupported, operation.GetType().Name));
 }
 public abstract void Generate([NotNull] RenameSequenceOperation renameSequenceOperation, [NotNull] SqlBatchBuilder batchBuilder);