Package liquibase.change.core.supplier

Source Code of liquibase.change.core.supplier.CreateProcedureChangeSupplier

package liquibase.change.core.supplier;

import liquibase.change.Change;
import liquibase.change.ColumnConfig;
import liquibase.change.ConstraintsConfig;
import liquibase.change.core.CreateProcedureChange;
import liquibase.change.core.CreateTableChange;
import liquibase.change.core.DropProcedureChange;
import liquibase.change.core.DropTableChange;
import liquibase.diff.DiffResult;
import liquibase.sdk.supplier.change.AbstractChangeSupplier;

public class CreateProcedureChangeSupplier extends AbstractChangeSupplier<CreateProcedureChange>  {

    public CreateProcedureChangeSupplier() {
        super(CreateProcedureChange.class);
    }

    @Override
    public Change[] prepareDatabase(CreateProcedureChange change) throws Exception {
        CreateTableChange createTableChange = new CreateTableChange();
        createTableChange.setCatalogName(change.getCatalogName());
        createTableChange.setSchemaName(change.getSchemaName());
        createTableChange.setTableName("customers");
        createTableChange.addColumn(new ColumnConfig().setName("id").setType("int").setConstraints(new ConstraintsConfig().setNullable(false).setPrimaryKey(true)).setAutoIncrement(true));
        createTableChange.addColumn(new ColumnConfig().setName("first_name").setType("varchar(50)"));
        createTableChange.addColumn(new ColumnConfig().setName("last_name").setType("varchar(50)"));

        return new Change[] {createTableChange };

    }

    @Override
    public void checkDiffResult(DiffResult diffResult, CreateProcedureChange change) throws Exception {
        //todo
    }

    @Override
    public Change[] revertDatabase(CreateProcedureChange change) throws Exception {
        DropTableChange dropTableChange = new DropTableChange();
        dropTableChange.setCatalogName(change.getCatalogName());
        dropTableChange.setSchemaName(change.getSchemaName());
        dropTableChange.setTableName("customers");

        DropProcedureChange dropProcedureChange = new DropProcedureChange();
        dropProcedureChange.setCatalogName(change.getCatalogName());
        dropProcedureChange.setSchemaName(change.getSchemaName());
        dropProcedureChange.setProcedureName("new_customer");

        return new Change[] {
                dropProcedureChange,
                dropTableChange
        };
    }
}
TOP

Related Classes of liquibase.change.core.supplier.CreateProcedureChangeSupplier

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.