/** Execute the DDL if required. */
  private void executeDDL(SpiEbeanServer server, boolean online) {

    server.getDdlGenerator().execute(online);
  }
Ejemplo n.º 2
0
  protected void removeDDL() {
    SpiEbeanServer serv = (SpiEbeanServer) getDatabase();
    DdlGenerator gen = serv.getDdlGenerator();

    gen.runScript(true, gen.generateDropDdl());
  }
Ejemplo n.º 3
0
  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);
    }
  }
Ejemplo n.º 4
0
  protected void installDDL() {
    SpiEbeanServer serv = (SpiEbeanServer) getDatabase();
    DdlGenerator gen = serv.getDdlGenerator();

    gen.runScript(false, gen.generateCreateDdl());
  }