public abstract class DatabaseSchemaChecker extends Object
JdbcConfig config = new JdbcConfig();
config.setDriver("com.mysql.jdbc.Driver");
config.setConnect("jdbc:mysql://localhost:3306/mysql_db");
config.getProperties().put("user", "root");
config.getProperties().put("password", "");
JdbcDatabase targetDatabase = JdbcDatabaseFactory.createInstance(config);
targetDatabase.begin();
DatabaseSchemaChecker checker = DatabaseSchemaChecker.forDbms("mysql");
checker.setDatabase(targetDatabase);
List urls = new ArrayList();
urls.add(getClass().getClassLoader().getResource("mysql/mysql-schema.sql"));
// add more script URLs that belong to the database schema...
checker.checkDatabaseSchema(urls.toArray(new URL[urls.size()]));
targetDatabase.close();
User: roman.stumm | Modifier and Type | Class and Description |
|---|---|
static class |
DatabaseSchemaChecker.Options |
| Modifier and Type | Field and Description |
|---|---|
protected JdbcDatabase |
database |
protected static org.slf4j.Logger |
logger |
protected List |
myFoundErrors |
protected Map |
unknownColumns |
| Constructor and Description |
|---|
DatabaseSchemaChecker() |
| Modifier and Type | Method and Description |
|---|---|
void |
addUnmappedColumn(String tableName,
String columnName)
configuration - declare a column as not mapped in the database, so that
it will not be treated as an error during assertSchemaComplete().
|
void |
assertCatalogsComplete(CatalogDescription schemaConfig,
CatalogDescription databaseConfig) |
abstract void |
assertObjectsValid()
API - check for invalid objects in the database
|
protected void |
assertTrue(String s,
boolean b) |
void |
checkDatabaseSchema(List<DatabaseSchemaChecker.Options> options,
URL[] scripts)
API - check the database for compatibility with the given XML-DDL configuration.
|
void |
checkDatabaseSchema(URL[] scripts)
API - check the database for compatibility with the given XML-DDL configuration.
|
protected void |
compareForeignKeyDescription(TableDescription xmlTableDescription,
TableDescription databaseTableDescription) |
protected void |
compareIndexDescription(TableDescription xmlTableDescription,
TableDescription databaseTableDescription) |
protected void |
compareSingleIndexDescription(IndexDescription xmlIndexDescription,
IndexDescription databaseIndexDescription) |
static DatabaseSchemaChecker |
forDbms(String dbms) |
JdbcDatabase |
getDatabase() |
protected abstract DDLScriptSqlMetaFactory |
getDDLScriptSqlMetaFactory() |
Map |
getUnmappedColumns() |
Collection |
getUnmappedColumns(String tableName) |
protected boolean |
isPrecisionCompatible(ColumnDescription expected,
ColumnDescription actual) |
protected boolean |
isScaleCompatible(ColumnDescription expected,
ColumnDescription actual) |
protected boolean |
isTypeCompatible(ColumnDescription expected,
ColumnDescription actual) |
protected void |
log(Object obj)
log INFO or Exception
|
protected void |
print(Object obj)
log INFO and print to console
|
protected abstract CatalogDescription |
readDatabaseCatalog(String[] tableNames) |
void |
setDatabase(JdbcDatabase aDatabase) |
protected void |
throwAssertions() |
protected static final org.slf4j.Logger logger
protected final List myFoundErrors
protected JdbcDatabase database
protected Map unknownColumns
public static DatabaseSchemaChecker forDbms(String dbms)
public JdbcDatabase getDatabase()
public void setDatabase(JdbcDatabase aDatabase)
public void addUnmappedColumn(String tableName, String columnName)
tableName - columnName - public Map getUnmappedColumns()
public Collection getUnmappedColumns(String tableName)
tableName - protected void throwAssertions()
public abstract void assertObjectsValid()
throws Exception
Exceptionpublic void checkDatabaseSchema(URL[] scripts) throws Exception
scripts - - scripts for schema (Soll-Zustand)
Der Ist-Zustand steht in der Datenbank und wird mit dem Soll-Zustand verglichen.Exceptionpublic void checkDatabaseSchema(List<DatabaseSchemaChecker.Options> options, URL[] scripts) throws Exception
options - - list with options per script (may be empty) - corresponding to index in 'scripts'scripts - - scripts for schema (Soll-Zustand)
Der Ist-Zustand steht in der Datenbank und wird mit dem Soll-Zustand verglichen.Exceptionprotected abstract DDLScriptSqlMetaFactory getDDLScriptSqlMetaFactory()
protected abstract CatalogDescription readDatabaseCatalog(String[] tableNames) throws SQLException, IOException
SQLExceptionIOExceptionpublic void assertCatalogsComplete(CatalogDescription schemaConfig, CatalogDescription databaseConfig)
protected void compareSingleIndexDescription(IndexDescription xmlIndexDescription, IndexDescription databaseIndexDescription)
protected void compareIndexDescription(TableDescription xmlTableDescription, TableDescription databaseTableDescription)
protected boolean isTypeCompatible(ColumnDescription expected, ColumnDescription actual)
protected boolean isScaleCompatible(ColumnDescription expected, ColumnDescription actual)
protected boolean isPrecisionCompatible(ColumnDescription expected, ColumnDescription actual)
protected void compareForeignKeyDescription(TableDescription xmlTableDescription, TableDescription databaseTableDescription)
protected void assertTrue(String s, boolean b)
protected void print(Object obj)
protected void log(Object obj)
obj - Copyright © 2008–2018. All rights reserved.