예제 #1
0
        public void Can_get_and_set_name_properties()
        {
            var moveProcedureOperation = new MoveProcedureOperation("dbo.Customers", "crm");

            Assert.Equal("dbo.Customers", moveProcedureOperation.Name);
            Assert.Equal("crm", moveProcedureOperation.NewSchema);
        }
예제 #2
0
        public void Inverse_should_produce_move_procedure_operation()
        {
            var moveProcedureOperation
                = new MoveProcedureOperation("dbo.MyCustomers", "crm");

            var inverse = (MoveProcedureOperation)moveProcedureOperation.Inverse;

            Assert.Equal("crm.MyCustomers", inverse.Name);
            Assert.Equal("dbo", inverse.NewSchema);
        }
 protected virtual IEnumerable<MigrationStatement> Generate(MoveProcedureOperation operation)
 {
     throw new NotSupportedException("'MoveProcedureOperation' is not supported.");
 }
        /// <summary>
        /// Generates code to perform a <see cref="MoveProcedureOperation" />.
        /// </summary>
        /// <param name="moveProcedureOperation">The operation to generate code for.</param>
        /// <param name="writer">Text writer to add the generated code to.</param>
        protected virtual void Generate(MoveProcedureOperation moveProcedureOperation, IndentedTextWriter writer)
        {
            Check.NotNull(moveProcedureOperation, "moveProcedureOperation");
            Check.NotNull(writer, "writer");

            writer.Write("MoveStoredProcedure(name := ");
            writer.Write(Quote(moveProcedureOperation.Name));
            writer.Write(", newSchema := ");
            writer.Write(
                string.IsNullOrWhiteSpace(moveProcedureOperation.NewSchema)
                    ? "Nothing"
                    : Quote(moveProcedureOperation.NewSchema));
            writer.WriteLine(")");
        }
        /// <summary>
        /// Generates the specified move procedure operation.
        /// </summary>
        /// <param name="moveProcedureOperation">The move procedure operation.</param>
        protected virtual void Generate(MoveProcedureOperation moveProcedureOperation)
        {
            Check.NotNull(moveProcedureOperation, "moveProcedureOperation");

            var newSchema = moveProcedureOperation.NewSchema ?? "dbo";

            if (!newSchema.EqualsIgnoreCase("dbo")
                && !_generatedSchemas.Contains(newSchema))
            {
                GenerateCreateSchema(newSchema);

                _generatedSchemas.Add(newSchema);
            }

            using (var writer = Writer())
            {
                writer.Write("ALTER SCHEMA ");
                writer.Write(Quote(newSchema));
                writer.Write(" TRANSFER ");
                writer.Write(Name(moveProcedureOperation.Name));

                Statement(writer);
            }
        }
        public void Generate_can_output_move_procedure_statement()
        {
            var moveProcedureOperation
                = new MoveProcedureOperation("dbo.History", "foo");

            var migrationSqlGenerator = new SqlServerMigrationSqlGenerator();

            var sql = migrationSqlGenerator.Generate(new[] { moveProcedureOperation }, "2008").Join(s => s.Sql, Environment.NewLine);

            Assert.Contains(
                @"IF schema_id('foo') IS NULL
    EXECUTE('CREATE SCHEMA [foo]')
ALTER SCHEMA [foo] TRANSFER [dbo].[History]", sql);
        }
 /// <summary>
 ///     Generates the specified move procedure operation.
 /// </summary>
 /// <param name="moveProcedureOperation">The move procedure operation.</param>
 protected virtual void Generate(MoveProcedureOperation moveProcedureOperation)
 {
 }