sql >> Base de Datos >  >> RDS >> Mysql

como copiar un esquema en mysql usando java

Puede intentar usar Apache ddlutils . Hay una manera de exportar los ddls de una base de datos a un archivo xml y volver a importarlo.

El uso de API La página tiene ejemplos sobre cómo exportar el esquema a un archivo xml, leer desde un archivo xml y aplicarlo a una nueva base de datos. He reproducido esas funciones a continuación junto con un pequeño fragmento sobre cómo usarlo para lograr lo que está pidiendo. Puede usar esto como punto de partida y optimizarlo aún más.

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);
}