protected override void Generate( RenameTableOperation operation, IModel model, MigrationCommandListBuilder builder) { Check.NotNull(operation, nameof(operation)); Check.NotNull(builder, nameof(builder)); if (operation.NewName != null) { builder .Append("ALTER TABLE ") .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Name)) .Append(" RENAME TO ") .Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.NewName)) .EndCommand(); } if (operation.NewSchema != null) { builder .Append("RENAME ") .Append(operation.NewSchema) .Append(" TO ") .Append(operation.Schema) .EndCommand(); } }
protected override void Generate(RenameTableOperation 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), "TABLE", builder); name = operation.NewName; } if (operation.NewSchema != null) { Transfer(operation.NewSchema, operation.Schema, name, "TABLE", builder); } EndStatement(builder); }
public void Visit_with_create_table_operation_followed_by_rename_operation_and_table_subordinate_operation() { var modelBuilder = new BasicModelBuilder(); var operation = new CreateTableOperation( new Table("dbo.T", new[] { new Column("Id", typeof(int)) })); var moveTableOperation = new MoveTableOperation("dbo.T", "dbo2"); var renameTableOperation = new RenameTableOperation("dbo2.T", "T2"); var addColumnOperation = new AddColumnOperation("dbo2.T2", new Column("C", typeof(string))); var operations = PreProcess(modelBuilder, operation, moveTableOperation, renameTableOperation, addColumnOperation); Assert.Equal(1, operations.Count); Assert.IsType <CreateTableOperation>(operations[0]); var createTableOperation = (CreateTableOperation)operations[0]; Assert.NotSame(operation, createTableOperation); Assert.NotSame(operation.Table, createTableOperation.Table); Assert.Equal("dbo2.T2", createTableOperation.Table.Name); Assert.Equal(new[] { "Id", "C" }, createTableOperation.Table.Columns.Select(c => c.Name)); Assert.Equal(new[] { typeof(int), typeof(string) }, createTableOperation.Table.Columns.Select(c => c.ClrType)); }
protected override void Generate(RenameTableOperation operation, IModel model, SqlBatchBuilder builder) { Check.NotNull(operation, nameof(operation)); Check.NotNull(builder, nameof(builder)); GenerateRename(operation.Name, operation.Schema, operation.NewName, "OBJECT", builder); }
protected override void Generate( RenameTableOperation 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(); }
protected override void Generate(RenameTableOperation operation, IModel model, MigrationCommandListBuilder 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, "TABLE", builder); separate = true; name = operation.NewName; } if (operation.NewSchema != null) { if (separate) { builder.AppendLine(SqlGenerationHelper.BatchTerminator); } Transfer(operation.NewSchema, operation.Schema, name, "TABLE", builder); } }
protected virtual void Generate( [NotNull] RenameTableOperation operation, [CanBeNull] IModel model, [NotNull] MigrationCommandListBuilder builder) { throw new NotImplementedException(); }
private static void WriteRenameTable(RenameTableOperation renameTableOperation, IndentedTextWriter writer) { writer.Write("RENAME TABLE '"); writer.Write(renameTableOperation.Name); writer.Write("' TO '"); writer.Write(renameTableOperation.NewName); writer.Write("'"); }
public void Create_and_initialize_operation() { var renameTableOperation = new RenameTableOperation("dbo.MyTable", "MyTable2"); Assert.Equal("dbo.MyTable", renameTableOperation.TableName); Assert.Equal("MyTable2", renameTableOperation.NewTableName); Assert.False(renameTableOperation.IsDestructiveChange); }
public void Generate_with_rename_table_works() { var operation = new RenameTableOperation("my.Pegasus", "Pony"); var sql = Generate(operation); Assert.Equal("ALTER TABLE \"my.Pegasus\" RENAME TO \"my.Pony\"", sql); }
protected override void Generate(RenameTableOperation renameTableOperation) { string oldName = getNameWithReplacedSchema(renameTableOperation.Name); string newName = renameTableOperation.NewName.Split('.').Last(); var newRenameTableOperation = new RenameTableOperation(oldName, newName, renameTableOperation.AnonymousArguments); base.Generate(newRenameTableOperation); }
protected override void Generate( RenameTableOperation operation, IModel?model, MigrationCommandListBuilder builder) { base.Generate(operation, model, builder); ReplaceWriteToEventLogFunctionIfEventLogTableTouched(model, builder, targetTableName: operation.NewName); }
public override void Visit(RenameTableOperation renameTableOperation, DatabaseModel databaseModel) { Check.NotNull(renameTableOperation, "renameTableOperation"); Check.NotNull(databaseModel, "databaseModel"); var table = databaseModel.GetTable(renameTableOperation.TableName); table.Name = new SchemaQualifiedName(renameTableOperation.NewTableName, renameTableOperation.TableName.Schema); }
public override void Visit(RenameTableOperation operation, Context context) { Check.NotNull(operation, "operation"); Check.NotNull(context, "context"); var handler = context.EnsureHandler(operation.TableName, supported: true); handler.AddOperation(operation); handler.TableName = new SchemaQualifiedName(operation.NewTableName, operation.TableName.Schema); }
public void Dispatches_visitor() { var renameTableOperation = new RenameTableOperation("dbo.MyTable", "MyTable2"); var mockVisitor = MigrationsTestHelpers.MockSqlGenerator(); var builder = new Mock <SqlBatchBuilder>(); renameTableOperation.GenerateSql(mockVisitor.Object, builder.Object); mockVisitor.Verify(g => g.Generate(renameTableOperation, builder.Object), Times.Once()); }
private void Generate(RenameTableOperation renameTableOperation) { ArgumentUtility.CheckNotNull("renameTableOperation", renameTableOperation); using (var writer = Writer()) { WriteRenameTable(renameTableOperation, writer); Statement(writer, true); } }
public override void Generate(RenameTableOperation renameTableOperation, IndentedStringBuilder stringBuilder) { Check.NotNull(renameTableOperation, "renameTableOperation"); Check.NotNull(stringBuilder, "stringBuilder"); GenerateRenameTable( renameTableOperation.TableName, new SchemaQualifiedName(renameTableOperation.NewTableName, renameTableOperation.TableName.Schema), stringBuilder); }
public void Generate_when_rename_table_operation() { var operation = new RenameTableOperation("dbo.MyTable", "MyTable2"); Assert.Equal( @"RenameTable(""dbo.MyTable"", ""MyTable2"")", CSharpMigrationCodeGenerator.Generate(operation)); GenerateAndValidateCode(operation); }
protected override void Generate(RenameTableOperation operation, IModel model, MigrationCommandListBuilder builder) { System.Console.WriteLine("RENAME TABLE DROP"); DropPolicy(operation.Schema, operation.Name, builder); base.Generate(operation, model, builder); System.Console.WriteLine("RENAME TABLE ADD"); AddPolicy(operation.NewSchema, operation.NewName, builder); }
public void Dispatches_visitor() { var renameTableOperation = new RenameTableOperation("dbo.MyTable", "MyTable2"); var mockVisitor = new Mock <MigrationOperationSqlGenerator>(new RelationalTypeMapper()); var builder = new Mock <IndentedStringBuilder>(); renameTableOperation.GenerateSql(mockVisitor.Object, builder.Object); mockVisitor.Verify(g => g.Generate(renameTableOperation, builder.Object), Times.Once()); }
private void Convert(RenameTableOperation renameTableOperation) { StringBuilder sql = new StringBuilder(); sql.Append("ALTER TABLE "); AppendTableName(renameTableOperation.Name, sql); sql.Append(" RENAME TO "); AppendTableName(renameTableOperation.NewName, sql); AddStatment(sql); }
public override void Generate([NotNull] RenameTableOperation renameTableOperation, [NotNull] IndentedStringBuilder stringBuilder) { Check.NotNull(renameTableOperation, "renameTableOperation"); stringBuilder .Append("RenameTable(") .Append(GenerateLiteral(renameTableOperation.TableName)) .Append(", ") .Append(GenerateLiteral(renameTableOperation.NewTableName)) .Append(")"); }
public override void Generate(RenameTableOperation renameTableOperation, IndentedStringBuilder stringBuilder) { Check.NotNull(renameTableOperation, "renameTableOperation"); stringBuilder .Append("EXECUTE sp_rename @objname = N") .Append(DelimitLiteral(renameTableOperation.TableName)) .Append(", @newname = N") .Append(DelimitLiteral(renameTableOperation.NewTableName)) .Append(", @objtype = N'OBJECT'"); }
public override void Generate(RenameTableOperation renameTableOperation, IndentedStringBuilder stringBuilder) { Check.NotNull(renameTableOperation, "renameTableOperation"); Check.NotNull(stringBuilder, "stringBuilder"); GenerateRename( renameTableOperation.TableName, renameTableOperation.NewTableName, "OBJECT", stringBuilder); }
protected virtual IEnumerable <MigrationStatement> Generate(RenameTableOperation operation) { using (var writer = SqlWriter()) { writer.Write("RENAME TABLE "); writer.Write(Quote(operation.Name)); writer.Write(" TO "); writer.Write(Quote(operation.NewName)); yield return(Statement(writer)); } }
public void Visit_with_rename_operation_followed_by_unsupported_subordinate_operation() { var modelBuilder = new BasicModelBuilder(); modelBuilder.Entity("T1", b => { b.Property <int>("Id"); b.Key("Id"); }); modelBuilder.Entity("T2", b => { b.Property <int>("Id"); b.Property <int>("C"); b.Key("Id"); // TODO: SQLite-specific. Issue #875 b.ForRelational().Table("T", "dbo"); }); var moveTableOperation = new MoveTableOperation("dbo.T", "dbo2"); var renameTableOperation = new RenameTableOperation("dbo2.T", "T2"); var addForeignKeyOperation = new AddForeignKeyOperation("dbo2.T2", "FK", new[] { "C" }, "T1", new[] { "Id" }, cascadeDelete: true); var operations = PreProcess(modelBuilder, moveTableOperation, renameTableOperation, addForeignKeyOperation); Assert.Equal(3, operations.Count); Assert.IsType <CreateTableOperation>(operations[0]); Assert.IsType <CopyDataOperation>(operations[1]); Assert.IsType <DropTableOperation>(operations[2]); var createTableOperation = (CreateTableOperation)operations[0]; Assert.Equal("dbo2.T2", createTableOperation.Table.Name); Assert.Equal(new[] { "Id", "C" }, createTableOperation.Table.Columns.Select(c => c.Name)); Assert.Equal(new[] { typeof(int), typeof(int) }, createTableOperation.Table.Columns.Select(c => c.ClrType)); Assert.Equal(1, createTableOperation.Table.ForeignKeys.Count); Assert.Equal("FK", createTableOperation.Table.ForeignKeys[0].Name); Assert.Equal("T1", createTableOperation.Table.ForeignKeys[0].ReferencedTable.Name); Assert.Equal(new[] { "C" }, createTableOperation.Table.ForeignKeys[0].Columns.Select(c => c.Name)); Assert.Equal(new[] { "Id" }, createTableOperation.Table.ForeignKeys[0].ReferencedColumns.Select(c => c.Name)); var copyDataOperation = (CopyDataOperation)operations[1]; Assert.Equal("dbo.T", copyDataOperation.SourceTableName); Assert.Equal(new[] { "Id", "C" }, copyDataOperation.SourceColumnNames); Assert.Equal("dbo2.T2", copyDataOperation.TargetTableName); Assert.Equal(new[] { "Id", "C" }, copyDataOperation.TargetColumnNames); var dropTableOperation = (DropTableOperation)operations[2]; Assert.Equal("dbo.T", dropTableOperation.TableName); }
public void Generate_can_output_rename_table_statements() { var renameTableOperation = new RenameTableOperation("dbo.Foo", "Bar"); var migrationSqlGenerator = new SqlCeMigrationSqlGenerator(); var sql = migrationSqlGenerator.Generate(new[] { renameTableOperation }, "2008").Join(s => s.Sql, Environment.NewLine); Assert.Contains( @"EXECUTE sp_rename @objname = N'Foo', @newname = N'Bar', @objtype = N'OBJECT'", sql); }
private string GenerateSqlStatementConcrete(RenameTableOperation migrationOperation) { var ddlBuilder = new SQLiteDdlBuilder(); ddlBuilder.AppendSql("ALTER TABLE "); ddlBuilder.AppendIdentifier(migrationOperation.Name); ddlBuilder.AppendSql(" RENAME TO "); ddlBuilder.AppendIdentifier(migrationOperation.NewName); return(ddlBuilder.GetCommandText()); }
public override void Generate(RenameTableOperation renameTableOperation, SqlBatchBuilder batchBuilder) { Check.NotNull(renameTableOperation, "renameTableOperation"); Check.NotNull(batchBuilder, "batchBuilder"); GenerateRename( renameTableOperation.TableName, renameTableOperation.NewTableName, "OBJECT", batchBuilder); }
/// <summary> /// Generates code to perform a <see cref="RenameTableOperation" />. /// </summary> /// <param name="renameTableOperation"> The operation to generate code for. </param> /// <param name="writer"> Text writer to add the generated code to. </param> protected virtual void Generate(RenameTableOperation renameTableOperation, IndentedTextWriter writer) { Check.NotNull(renameTableOperation, "renameTableOperation"); Check.NotNull(writer, "writer"); writer.Write("RenameTable(name := "); writer.Write(Quote(renameTableOperation.Name)); writer.Write(", newName := "); writer.Write(Quote(renameTableOperation.NewName)); writer.WriteLine(")"); }