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);
}
}
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);
}
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);
}
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);
}
}
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;
}
Aggregations