sql >> Databasteknik >  >> RDS >> Mysql

hur man kopierar ett schema i mysql med java

Du kan prova att använda Apache ddlutils . Det finns ett sätt att exportera ddls från en databas till en xml-fil och återimportera tillbaka den.

api-användning a> sidan har exempel på hur man exporterar schemat till en xml-fil, läser från xml-filen och applicerar det på en ny databas. Jag har återgett dessa funktioner nedan tillsammans med ett litet utdrag om hur man använder det för att utföra det du efterfrågar. Du kan använda detta som utgångspunkt och optimera det ytterligare.

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


  1. MariaDB FOUND_ROWS() Förklarad

  2. Ytterligare en anledning att använda NOEXPAND-tips i Enterprise Edition

  3. Vad är skillnaden mellan cachePrepStmts och useServerPrepStmts i MySQL JDBC Driver

  4. logga in med användarnamn eller e-postadress i php