/** * Generates the database-specific DDL statements required to remove * the specified column from the given table. This should also * generate the necessary statements to drop all triggers and functions * associated with the column in question. If the database being * implemented has a non-standard syntax for dropping functions and/or * triggers, it may be required to override this method, even if the * syntax to drop columns is standard. * * @param nameConverters * @param table The table from which to drop the column. * @param field The column definition to remove from the table. * @return An array of DDL statements to be executed. * @see #getTriggerNameForField(net.java.ao.schema.TriggerNameConverter, net.java.ao.schema.ddl.DDLTable, net.java.ao.schema.ddl.DDLField) * @see #getFunctionNameForField(net.java.ao.schema.TriggerNameConverter, net.java.ao.schema.ddl.DDLTable, net.java.ao.schema.ddl.DDLField) */ protected Iterable<SQLAction> renderAlterTableDropColumn(NameConverters nameConverters, DDLTable table, DDLField field) { ImmutableList.Builder<SQLAction> back = ImmutableList.builder(); for (DDLForeignKey foreignKey : findForeignKeysForField(table, field)) { back.add(renderAlterTableDropKey(foreignKey)); } back.addAll(renderDropAccessoriesForField(nameConverters, table, field)); back.add(renderAlterTableDropColumnStatement(table, field)); return back.build(); }
/** * Generates the database-specific DDL statements required to remove * the specified column from the given table. This should also * generate the necessary statements to drop all triggers and functions * associated with the column in question. If the database being * implemented has a non-standard syntax for dropping functions and/or * triggers, it may be required to override this method, even if the * syntax to drop columns is standard. * * @param nameConverters * @param table The table from which to drop the column. * @param field The column definition to remove from the table. * @return An array of DDL statements to be executed. * @see #getTriggerNameForField(net.java.ao.schema.TriggerNameConverter, net.java.ao.schema.ddl.DDLTable, net.java.ao.schema.ddl.DDLField) * @see #getFunctionNameForField(net.java.ao.schema.TriggerNameConverter, net.java.ao.schema.ddl.DDLTable, net.java.ao.schema.ddl.DDLField) */ protected Iterable<SQLAction> renderAlterTableDropColumn(NameConverters nameConverters, DDLTable table, DDLField field) { ImmutableList.Builder<SQLAction> back = ImmutableList.builder(); for (DDLForeignKey foreignKey : findForeignKeysForField(table, field)) { back.add(renderAlterTableDropKey(foreignKey)); } back.addAll(renderDropAccessoriesForField(nameConverters, table, field)); back.add(renderAlterTableDropColumnStatement(table, field)); return back.build(); }
.withUndoAction(renderAlterTableDropColumnStatement(table, field))); for (DDLForeignKey foreignKey : findForeignKeysForField(table, field)) { back.add(renderAlterTableAddKey(foreignKey).withUndoAction(renderAlterTableDropKey(foreignKey)));
.withUndoAction(renderAlterTableDropColumnStatement(table, field))); for (DDLForeignKey foreignKey : findForeignKeysForField(table, field)) { back.add(renderAlterTableAddKey(foreignKey).withUndoAction(renderAlterTableDropKey(foreignKey)));