您可以尝试使用Apache ddlutils。有一种方法可以将 ddls 从数据库导出到 xml 文件并重新导入。
api 使用页面有关于如何将模式导出到 xml 文件、从 xml 文件读取并将其应用到新数据库的示例。我已经在下面复制了这些功能以及关于如何使用它来完成您所要求的小片段。您可以以此为起点并进一步优化它。
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);
}