|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.agimatec.sql.meta.checking.DatabaseSchemaChecker
public abstract class DatabaseSchemaChecker
Description: Compare a database schema against sql scripts and find differences.
Example for mysql:
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
| Field Summary | |
|---|---|
protected JdbcDatabase |
database
|
protected static org.slf4j.Logger |
logger
|
protected List |
myFoundErrors
|
protected Map |
unknownColumns
|
| Constructor Summary | |
|---|---|
DatabaseSchemaChecker()
|
|
| Method Summary | |
|---|---|
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(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()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final org.slf4j.Logger logger
protected final List myFoundErrors
protected JdbcDatabase database
protected Map unknownColumns
| Constructor Detail |
|---|
public DatabaseSchemaChecker()
| Method Detail |
|---|
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
Exception
public 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.
Exceptionprotected abstract DDLScriptSqlMetaFactory getDDLScriptSqlMetaFactory()
protected abstract CatalogDescription readDatabaseCatalog(String[] tableNames)
throws SQLException,
IOException
SQLException
IOException
public 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 -
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||