/** Execute the DDL if required. */ private void executeDDL(SpiEbeanServer server, boolean online) { server.getDdlGenerator().execute(online); }
protected void removeDDL() { SpiEbeanServer serv = (SpiEbeanServer) getDatabase(); DdlGenerator gen = serv.getDdlGenerator(); gen.runScript(true, gen.generateDropDdl()); }
private void installDatabase(boolean rebuild) { // Check if the database already (partially) exists boolean databaseExists = false; List<Class<?>> classes = getDatabaseClasses(); for (int i = 0; i < classes.size(); i++) { try { // Do a simple query which only throws an exception if the table does not exist ebeanServer.find(classes.get(i)).findRowCount(); // Query passed without throwing an exception, a database therefore already exists databaseExists = true; break; } catch (Exception ex) { // Do nothing } } // Check if the database has to be created or rebuilt if (!rebuild && databaseExists) { return; } // Create a DDL generator SpiEbeanServer serv = (SpiEbeanServer) ebeanServer; DdlGenerator gen = serv.getDdlGenerator(); // Fire "before drop" event try { beforeDropDatabase(); } catch (Exception ex) { // If the database exists, dropping has to be canceled to prevent data-loss if (databaseExists) { throw new RuntimeException("An unexpected exception occured", ex); } } // Generate a DropDDL-script gen.runScript(true, gen.generateDropDdl()); // If SQLite is being used, the database has to reloaded to release all resources if (usingSQLite) { loadDatabase(); } // Generate a CreateDDL-script if (usingSQLite) { // If SQLite is being used, the CreateDLL-script has to be validated and potentially fixed to // be valid gen.runScript(false, validateCreateDDLSqlite(gen.generateCreateDdl())); } else { gen.runScript(false, gen.generateCreateDdl()); } // Fire "after create" event try { afterCreateDatabase(); } catch (Exception ex) { throw new RuntimeException("An unexpected exception occured", ex); } }
protected void installDDL() { SpiEbeanServer serv = (SpiEbeanServer) getDatabase(); DdlGenerator gen = serv.getDdlGenerator(); gen.runScript(false, gen.generateCreateDdl()); }