Mysql
 sql >> Database >  >> RDS >> Mysql

come copiare uno schema in mysql usando java

Puoi provare a utilizzare Apache ddlutils . C'è un modo per esportare i ddls da un database in un file xml e reimportarlo.

L'utilizzo delle API La pagina contiene esempi su come esportare lo schema in un file xml, leggere da un file xml e applicarlo a un nuovo database. Ho riprodotto quelle funzioni di seguito insieme a un piccolo frammento su come utilizzarlo per ottenere ciò che stai chiedendo. Puoi usarlo come punto di partenza e ottimizzarlo ulteriormente.

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