Search in sources :

Example 1 with Column

use of liquibase.database.structure.Column in project collect by openforis.

the class LiquidbaseDatabaseSnapshotBuilder method createPKIndexes.

private void createPKIndexes() {
    for (org.openforis.collect.relational.model.Table<?> itable : schema.getTables()) {
        Table ltable = snapshot.getTable(itable.getName());
        PrimaryKeyConstraint pkConstraint = itable.getPrimaryKeyConstraint();
        Index index = new Index();
        index.setTable(ltable);
        index.setName(pkConstraint.getName() + "_idx");
        List<org.openforis.collect.relational.model.Column<?>> columns = pkConstraint.getColumns();
        for (org.openforis.collect.relational.model.Column<?> column : columns) {
            index.addAssociatedWith(Index.MARK_PRIMARY_KEY);
            index.getColumns().add(column.getName());
        }
        snapshot.getIndexes().add(index);
    }
}
Also used : Table(liquibase.database.structure.Table) PrimaryKeyColumn(org.openforis.collect.relational.model.PrimaryKeyColumn) Column(liquibase.database.structure.Column) Index(liquibase.database.structure.Index) PrimaryKeyConstraint(org.openforis.collect.relational.model.PrimaryKeyConstraint)

Example 2 with Column

use of liquibase.database.structure.Column in project collect by openforis.

the class IdmDataTableBuilder method addIdColumn.

private void addIdColumn() {
    Column idCol = createIdColumn("_id");
    addColumn(idCol);
}
Also used : Column(liquibase.database.structure.Column)

Example 3 with Column

use of liquibase.database.structure.Column in project collect by openforis.

the class IdmDataTableBuilder method addAttributeColumn.

private void addAttributeColumn(String name, String type) {
    Column col = new Column();
    col.setName(name);
    col.setNullable(true);
    col.setTypeName(type);
    addColumn(col);
}
Also used : Column(liquibase.database.structure.Column)

Example 4 with Column

use of liquibase.database.structure.Column in project collect by openforis.

the class LiquidbaseDatabaseSnapshotBuilder method createTables.

private void createTables() {
    // Create table
    for (org.openforis.collect.relational.model.Table<?> itable : schema.getTables()) {
        Table ltable = new Table(itable.getName());
        Database db = snapshot.getDatabase();
        ltable.setDatabase(db);
        ltable.setSchema(schema.getName());
        ltable.setRawSchemaName(schema.getName());
        // Create columns
        for (org.openforis.collect.relational.model.Column<?> icolumn : itable.getColumns()) {
            Column lcolumn = new Column();
            lcolumn.setTable(ltable);
            lcolumn.setName(icolumn.getName());
            lcolumn.setNullable(icolumn.isNullable());
            lcolumn.setDataType(icolumn.getType());
            lcolumn.setTypeName(icolumn.getTypeName());
            if (icolumn.getLength() != null) {
                lcolumn.setColumnSize(icolumn.getLength());
            }
            // Set PK
            if (icolumn instanceof PrimaryKeyColumn) {
                lcolumn.setPrimaryKey(true);
                lcolumn.setUnique(true);
                // Add PK constraint
                PrimaryKey lpk = new PrimaryKey();
                lpk.setTable(ltable);
                lpk.setName(itable.getPrimaryKeyConstraint().getName());
                lpk.getColumnNamesAsList().add(lcolumn.getName());
                snapshot.getPrimaryKeys().add(lpk);
            }
            // Add column
            ltable.getColumns().add(lcolumn);
        }
        // Add table
        snapshot.getTables().add(ltable);
    }
}
Also used : PrimaryKeyColumn(org.openforis.collect.relational.model.PrimaryKeyColumn) Table(liquibase.database.structure.Table) PrimaryKeyColumn(org.openforis.collect.relational.model.PrimaryKeyColumn) Column(liquibase.database.structure.Column) Database(liquibase.database.Database) UnsupportedDatabase(liquibase.database.core.UnsupportedDatabase) PrimaryKey(liquibase.database.structure.PrimaryKey)

Example 5 with Column

use of liquibase.database.structure.Column in project collect by openforis.

the class AbstractIdmTableBuilder method createIdColumn.

protected Column createIdColumn(String name) {
    Column col = new Column();
    col.setName(name);
    // col.setDataType(Types.INTEGER);
    col.setTypeName("integer");
    col.setNullable(false);
    return col;
}
Also used : Column(liquibase.database.structure.Column)

Aggregations

Column (liquibase.database.structure.Column)6 Table (liquibase.database.structure.Table)2 PrimaryKeyColumn (org.openforis.collect.relational.model.PrimaryKeyColumn)2 Database (liquibase.database.Database)1 UnsupportedDatabase (liquibase.database.core.UnsupportedDatabase)1 Index (liquibase.database.structure.Index)1 PrimaryKey (liquibase.database.structure.PrimaryKey)1 PrimaryKeyConstraint (org.openforis.collect.relational.model.PrimaryKeyConstraint)1