Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment copier un schéma dans mysql en utilisant java

Vous pouvez essayer d'utiliser les Apache ddlutils . Il existe un moyen d'exporter les ddls d'une base de données vers un fichier xml et de le réimporter.

L'l'utilisation de l'API La page contient des exemples sur la façon d'exporter un schéma vers un fichier xml, de lire à partir d'un fichier xml et de l'appliquer à une nouvelle base de données. J'ai reproduit ces fonctions ci-dessous avec un petit extrait sur la façon de l'utiliser pour accomplir ce que vous demandez. Vous pouvez l'utiliser comme point de départ et l'optimiser davantage.

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