Você pode tentar usar o Apache ddlutils . Existe uma maneira de exportar os ddls de um banco de dados para um arquivo xml e reimportá-lo de volta.
O uso da API A página tem exemplos de como exportar esquema para um arquivo xml, ler do arquivo xml e aplicá-lo a um novo banco de dados. Reproduzi essas funções abaixo junto com um pequeno trecho de como usá-lo para realizar o que você está pedindo. Você pode usar isso como ponto de partida e otimizá-lo ainda mais.
DataSource sourceDb;
DataSource targetDb;
writeDatabaseToXML(readDatabase(sourceDb), "database-dump.xml");
changeDatabase(targetDb,readDatabaseFromXML("database-dump.xml"));
public Database readDatabase(DataSource dataSource)
{
Platform platform = PlatformFactory.createNewPlatformInstance(dataSource);
return platform.readModelFromDatabase("model");
}
public void writeDatabaseToXML(Database db, String fileName)
{
new DatabaseIO().write(db, fileName);
}
public Database readDatabaseFromXML(String fileName)
{
return new DatabaseIO().read(fileName);
}
public void changeDatabase(DataSource dataSource,
Database targetModel)
{
Platform platform = PlatformFactory.createNewPlatformInstance(dataSource);
platform.createTables(targetModel, true, false);
}