protected boolean isApplicable() throws CustomChangeException { try { String correctedTableName = database.correctObjectName("REALM", Table.class); if (SnapshotGeneratorFactory.getInstance().has(new Table().setName(correctedTableName), database)) { ResultSet resultSet = connection.createStatement().executeQuery("SELECT ID FROM " + getTableName(correctedTableName)); try { return (resultSet.next()); } finally { resultSet.close(); } } else { return false; } } catch (Exception e) { throw new CustomChangeException("Failed to check database availability", e); } }
protected boolean isApplicable() throws CustomChangeException { try { String correctedTableName = database.correctObjectName("REALM", Table.class); if (SnapshotGeneratorFactory.getInstance().has(new Table().setName(correctedTableName), database)) { ResultSet resultSet = connection.createStatement().executeQuery("SELECT ID FROM " + getTableName(correctedTableName)); try { return (resultSet.next()); } finally { resultSet.close(); } } else { return false; } } catch (Exception e) { throw new CustomChangeException("Failed to check database availability", e); } }
@Override public SqlStatement[] generateStatements(Database database) throws CustomChangeException { try { StringBuilder sb = new StringBuilder(); sb.append("Generated codeSecret for realms: "); Connection connection = ((JdbcConnection) (database.getConnection())).getWrappedConnection(); ArrayList<SqlStatement> statements = new ArrayList<SqlStatement>(); String correctedTableName = database.correctObjectName("REALM", Table.class); if (SnapshotGeneratorFactory.getInstance().has(new Table().setName(correctedTableName), database)) { ResultSet resultSet = connection.createStatement().executeQuery("SELECT ID FROM " + LiquibaseJpaUpdaterProvider.getTable(correctedTableName, database.getDefaultSchemaName()) + " WHERE CODE_SECRET IS NULL"); while (resultSet.next()) { String id = resultSet.getString(1); UpdateStatement statement = new UpdateStatement(null, null, correctedTableName) .addNewColumnValue("CODE_SECRET", KeycloakModelUtils.generateCodeSecret()) .setWhereClause("ID='" + id + "'"); statements.add(statement); if (!resultSet.isFirst()) { sb.append(", "); } sb.append(id); } if (!statements.isEmpty()) { confirmationMessage = sb.toString(); } } return statements.toArray(new SqlStatement[statements.size()]); } catch (Exception e) { throw new CustomChangeException("Failed to add realm code secret", e); } }
String correctedSchemaName = database.escapeObjectName(database.getDefaultSchemaName(), Schema.class); if (SnapshotGeneratorFactory.getInstance().has(new Table().setName(correctedTableName), database)) { ResultSet resultSet = connection.createStatement().executeQuery("SELECT ID FROM " + LiquibaseJpaUpdaterProvider.getTable(correctedTableName, correctedSchemaName) + " WHERE CODE_SECRET IS NULL"); while (resultSet.next()) {
keySize.setAccessible(true); table = new Table().setName((String) tableName.get(tableGenerator));
@Override protected void addTo(DatabaseObject foundObject, DatabaseSnapshot snapshot) throws DatabaseException, InvalidExampleException { if (!snapshot.getSnapshotControl().shouldInclude(Table.class)) { return; } if (foundObject instanceof Schema) { Schema schema = (Schema) foundObject; HibernateDatabase database = (HibernateDatabase) snapshot.getDatabase(); Configuration cfg = database.getConfiguration(); Iterator<org.hibernate.mapping.Table> tableMappings = cfg.getTableMappings(); while (tableMappings.hasNext()) { org.hibernate.mapping.Table hibernateTable = tableMappings.next(); if (hibernateTable.isPhysicalTable()) { Table table = new Table().setName(hibernateTable.getName()); table.setSchema(schema); LOG.info("Found table " + table.getName()); schema.addDatabaseObject(table); } } } } }
@Override protected DatabaseObject snapshotObject(DatabaseObject example, DatabaseSnapshot snapshot) throws DatabaseException, InvalidExampleException { if (example.getSnapshotId() != null) { return example; } org.hibernate.mapping.Table hibernateTable = findHibernateTable(example, snapshot); if (hibernateTable == null) { return example; } Table table = new Table().setName(hibernateTable.getName()); LOG.info("Found table " + table.getName()); // table.setSnapshotId(SnapshotIdService.getInstance().generateId()); table.setSchema(example.getSchema()); return table; }
Table table = new Table().setName(hibernateTable.getName()); table.setSchema(schema); LOG.info("Found table " + table.getName()); org.hibernate.mapping.Table hTable = coll.getCollectionTable(); if (hTable.isPhysicalTable()) { Table table = new Table().setName(hTable.getName()); table.setSchema(schema); LOG.info("Found table " + table.getName());
while (fkIterator.hasNext()) { org.hibernate.mapping.ForeignKey hibernateForeignKey = (org.hibernate.mapping.ForeignKey) fkIterator.next(); Table currentTable = new Table().setName(hibernateTable.getName()); currentTable.setSchema(hibernateTable.getCatalog(), hibernateTable.getSchema()); Table referencedTable = new Table().setName(hibernateReferencedTable.getName()); referencedTable.setSchema(hibernateReferencedTable.getCatalog(), hibernateReferencedTable.getSchema());
Table table = new Table().setName(hibernateTable.getName()); PrimaryKey primaryKey = null; int pkColumnPosition = 0;
@Override public Table snapshot(IdentifierGenerator ig) { TableGenerator tableGenerator = (TableGenerator) ig; Table table = new Table().setName(tableGenerator.getTableName()); Column pkColumn = new Column(); pkColumn.setName(tableGenerator.getSegmentColumnName()); DataType pkDataType = new DataType(PK_DATA_TYPE); pkDataType.setColumnSize(tableGenerator.getSegmentValueLength()); pkColumn.setType(pkDataType); pkColumn.setCertainDataType(false); pkColumn.setRelation(table); table.getColumns().add(pkColumn); PrimaryKey primaryKey = new PrimaryKey(); primaryKey.setName(tableGenerator.getTableName() + "PK"); primaryKey.addColumn(0, new Column(pkColumn.getName()).setRelation(table)); primaryKey.setTable(table); table.setPrimaryKey(primaryKey); Column valueColumn = new Column(); valueColumn.setName(tableGenerator.getValueColumnName()); valueColumn.setType(new DataType(VALUE_DATA_TYPE)); valueColumn.setNullable(false); valueColumn.setCertainDataType(false); valueColumn.setRelation(table); table.getColumns().add(valueColumn); return table; }