Package liquibase.change.core.supplier

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

package liquibase.change.core.supplier;

import liquibase.change.AddColumnConfig;
import liquibase.change.Change;
import liquibase.change.ColumnConfig;
import liquibase.change.ConstraintsConfig;
import liquibase.change.core.CreateIndexChange;
import liquibase.change.core.CreateTableChange;
import liquibase.change.core.DropIndexChange;
import liquibase.diff.DiffResult;
import liquibase.sdk.supplier.change.AbstractChangeSupplier;
import liquibase.structure.core.Index;

import static junit.framework.TestCase.assertNotNull;

public class DropIndexChangeSupplier extends AbstractChangeSupplier<DropIndexChange>  {

    public DropIndexChangeSupplier() {
        super(DropIndexChange.class);
    }


    @Override
    public Change[]  prepareDatabase(DropIndexChange change) throws Exception {
        String usedTableName = change.getTableName();

        if (usedTableName == null) {
            usedTableName = "person";
        }

        CreateTableChange createTableChange = new CreateTableChange();
        createTableChange.setCatalogName(change.getCatalogName());
        createTableChange.setSchemaName(change.getSchemaName());
        createTableChange.setTableName(usedTableName);

        createTableChange.addColumn(new ColumnConfig().setName("name").setType("varchar(255)").setConstraints(new ConstraintsConfig().setNullable(false)));
        createTableChange.addColumn(new ColumnConfig().setName("other_column").setType("int"));

        CreateIndexChange createIndexChange = new CreateIndexChange();
        createIndexChange.setIndexName(change.getIndexName());
        createIndexChange.setTableName(usedTableName);
        createIndexChange.addColumn((AddColumnConfig) new AddColumnConfig().setName("name"));

        return new Change[] {createTableChange, createIndexChange };

    }

    @Override
    public void checkDiffResult(DiffResult diffResult, DropIndexChange change) {
        assertNotNull(diffResult.getMissingObject(new Index(change.getIndexName())));
    }
}
TOP

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

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.