
liquibase.ext.ora.encapsulateTableWithView.EncapsulateTableWithViewChange Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of liquibase-oracle Show documentation
Show all versions of liquibase-oracle Show documentation
Some tags to work on Oracle DB.
package liquibase.ext.ora.encapsulateTableWithView;
import liquibase.change.AbstractChange;
import liquibase.change.Change;
import liquibase.change.ChangeMetaData;
import liquibase.change.DatabaseChange;
import liquibase.change.core.DropViewChange;
import liquibase.change.core.RenameTableChange;
import liquibase.database.Database;
import liquibase.statement.SqlStatement;
import liquibase.statement.core.CreateViewStatement;
import liquibase.statement.core.RenameTableStatement;
@DatabaseChange(name="encapsulateTableWithView", description = "Encapsulate table with view", priority = ChangeMetaData.PRIORITY_DEFAULT)
public class EncapsulateTableWithViewChange extends AbstractChange {
private String schemaName;
private String tableName;
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public String getSchemaName() {
return schemaName;
}
public void setSchemaName(String schemaName) {
this.schemaName = schemaName;
}
public SqlStatement[] generateStatements(Database database) {
return new SqlStatement[]{new RenameTableStatement(null, schemaName, tableName, "T" + tableName),
new CreateViewStatement(null, schemaName, tableName, "SELECT * FROM T" + tableName, true)};
}
public String getConfirmationMessage() {
// return "View "+tableName+" created and table renamed to T"+tableName;
return "Table " + tableName + " encapsulated with view";
}
@Override
protected Change[] createInverses() {
DropViewChange dropView = new DropViewChange();
dropView.setViewName(tableName);
RenameTableChange renameTable = new RenameTableChange();
renameTable.setOldTableName("T" + tableName);
renameTable.setNewTableName(tableName);
return new Change[]{dropView, renameTable};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy