Example usage for org.hibernate.tool.hbm2ddl SchemaUpdate setOutputFile

List of usage examples for org.hibernate.tool.hbm2ddl SchemaUpdate setOutputFile

Introduction

In this page you can find the example usage for org.hibernate.tool.hbm2ddl SchemaUpdate setOutputFile.

Prototype

public SchemaUpdate setOutputFile(String outputFile) 

Source Link

Usage

From source file:com.premiumminds.persistence.utils.HibernateEnversDDL.java

License:Open Source License

private static void updateCommand(String[] args) {
    String unitName, filename = null, url, username, password;
    if (args.length < 5)
        System.out.println("Expected unitName jdbcUrl jdbcUsername jdbcPassword");
    else {/*from w w w.  j  a  v a2s .  c o m*/
        unitName = args[1];
        url = args[2];
        username = args[3];
        password = args[4];
        if (args.length > 5)
            filename = args[5];

        Configuration configuration = HibernateDDL.getConfiguration(unitName);
        configuration.buildMappings();
        AuditConfiguration.getFor(configuration);
        Dialect dialect = Dialect.getDialect(configuration.getProperties());

        Connection conn = null;
        DatabaseMetadata meta = null;
        try {
            conn = DriverManager.getConnection(url, username, password);
            meta = new DatabaseMetadata(conn, dialect, true);
            String[] updateSQL = configuration.generateSchemaUpdateScript(dialect, meta);

            HibernateDDL.stringToStream(updateSQL, filename);

            configuration.buildMappings();
            AuditConfiguration.getFor(configuration);
            SchemaUpdate su = new SchemaUpdate(configuration);
            su.setOutputFile(filename);
            su.setFormat(true);
            su.setDelimiter(";");
            su.execute(true, false);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

From source file:com.vecna.maven.hibernate.HibernateSchemaUpdateMojo.java

License:Apache License

/**
 * Generates upgrade script for the schema.
 * {@inheritDoc}//from w  w  w . j  a  v  a2 s .com
 */
@Override
protected void executeWithMappings(Configuration configuration)
        throws MojoExecutionException, MojoFailureException {
    SchemaUpdate schemaUpdate = new SchemaUpdate(configuration);
    schemaUpdate.setFormat(format);

    if (outputFile != null) {
        initializePath();
        schemaUpdate.setOutputFile(outputFile);
        schemaUpdate.setDelimiter(delimiter);
    }

    schemaUpdate.execute(print, export);
}

From source file:name.livitski.tools.persista.StorageBootstrap.java

License:Open Source License

@SuppressWarnings("unchecked")
private void updateSchema() throws ApplicationBeanException {
    try {/*  ww  w  . j av a 2 s.c  o  m*/
        String user = readSetting(UpdaterUserNameSetting.class);
        String password;
        if (null != user)
            password = readSetting(UpdaterPasswordSetting.class);
        else {
            user = readSetting(UserNameSetting.class);
            password = readSetting(PasswordSetting.class);
        }

        org.hibernate.cfg.Configuration cfg = new org.hibernate.cfg.Configuration();
        cfg.setProperty(AvailableSettings.HBM2DDL_AUTO, "update");
        cfg.setProperty(AvailableSettings.DIALECT, readSetting(HibernateSQLDialectSetting.class).getName());
        cfg.setProperty(AvailableSettings.DRIVER, getJDBCDriverClass().getName());
        cfg.setProperty(AvailableSettings.URL, db.getMetaData().getURL());
        cfg.setProperty(AvailableSettings.USER, user);
        cfg.setProperty(AvailableSettings.PASS, password);

        for (Class<?> clazz : getEntityClasses())
            cfg.addAnnotatedClass(clazz);

        SchemaUpdate worker = new SchemaUpdate(cfg);
        worker.setDelimiter(";");
        worker.setHaltOnError(true);
        if (null != ddlDumpFile)
            worker.setOutputFile(ddlDumpFile.getAbsolutePath());
        worker.execute(true, true);
        List<Throwable> errs = (List<Throwable>) worker.getExceptions();
        if (null != errs && !errs.isEmpty())
            for (Iterator<Throwable> erri = errs.iterator();;) {
                Throwable err = erri.next();
                if (erri.hasNext())
                    log().error("", err);
                else
                    throw new SchemaUpdateException(this,
                            "Error(s) occured during the schema update, the last error is shown.", err);
            }
    } catch (ConfigurationException badConfig) {
        throw new StorageConfigurationException(this, badConfig);
    } catch (SQLException e) {
        throw new DatabaseException(this, e);
    }
}

From source file:net.leadware.hibernate4.maven.plugin.ShemaExportMojo.java

License:Apache License

public void execute() throws MojoExecutionException, MojoFailureException {

    // Un log//w  w  w . j  a va 2 s . c  o m
    getLog().info("Exportation de l'Unite de persistence: " + unitName + ".");

    // Initialisation du repertoire de sortie
    initOutputDirectory();

    // Fichier de drop
    File dropFile = new File(dropOutputFile.trim());

    // Fichier de drop
    File createFile = new File(createOutputFile.trim());

    // Fichier de drop
    File updateFile = null;

    // Obtention du Thread courant
    final Thread currentThread = Thread.currentThread();

    // Obtention du stream de sortie
    final PrintStream oldOut = System.out;

    // Obtention du classloader du thread en cours
    final ClassLoader oldClassLoader = currentThread.getContextClassLoader();

    try {

        // Positionnement de la sortie par defaut
        System.setOut(new PrintStream(new ByteArrayOutputStream()));

        // Positionnement du classloader avec ajout des chemins de classe du projet maven sous-jacent
        currentThread.setContextClassLoader(buildClassLoader(oldClassLoader));

        // Configuration EJB3
        Ejb3Configuration jpaConfiguration = null;

        // Si le fichier de persistence est renseigne
        if (persistenceFile != null && !persistenceFile.trim().isEmpty()) {

            // On positionne le fichier de persistence
            jpaConfiguration = new Ejb3Configuration().addFile(persistenceFile).configure(unitName, null);

        } else {

            // Configuration EJB3
            jpaConfiguration = new Ejb3Configuration().configure(unitName, null);
        }

        // Configuration Hibernate
        Configuration configuration = jpaConfiguration.getHibernateConfiguration();

        // Si le dialect a ete precise dans la configuration du plugin
        if (dialect != null && !dialect.trim().isEmpty())
            configuration.setProperty("hibernate.dialect", dialect.trim());

        // Exporteur de schema
        SchemaExport exporter = new SchemaExport(configuration);

        // Positionnement du delimiteur
        exporter.setDelimiter(delimiter);

        // Positionnement du fichier de sortie en drop
        exporter.setOutputFile(dropFile.getAbsolutePath());

        // Exportation des scripts drop
        exporter.execute(true, false, true, false);

        // Positionnement du fichier de sortie en create
        exporter.setOutputFile(createFile.getAbsolutePath());

        // Exportation des scripts drop
        exporter.execute(true, false, false, true);

        // Si le chemin des scripts de mise a jour est positionne
        if (updateOutputFile != null && !updateOutputFile.trim().isEmpty()) {

            // Modificateur de schema
            SchemaUpdate updater = new SchemaUpdate(configuration);

            // Fichier de drop
            updateFile = new File(updateOutputFile.trim());

            // Positionnement du fichier de sortie en create
            updater.setOutputFile(updateFile.getAbsolutePath());

            // Exportation des scripts drop
            updater.execute(true, true);
        }

        // Si il ya des cripts additionnels
        if (extendedScripts != null) {

            // Parcours de la liste des scripts de creation
            for (String script : extendedScripts.getCreateScripts()) {

                // Tentative de construction d'un File sur le la chaine script
                File scriptFile = new File(script);

                // Si l'objet existe et est un fichier
                if (scriptFile.exists() && scriptFile.isFile()) {

                    // Ajout de son contenu dans le fichier de script en cours
                    FileUtils.fileAppend(createFile.getAbsolutePath(), "\n\n" + FileUtils.fileRead(scriptFile));

                } else {

                    // Ajout du script dans le fichier
                    FileUtils.fileAppend(createFile.getAbsolutePath(), "\n\t" + script);
                }
            }

            // Parcours de la liste des scripts de suppression
            for (String script : extendedScripts.getDropScripts()) {

                // Tentative de construction d'un File sur le la chaine script
                File scriptFile = new File(script);

                // Si l'objet existe et est un fichier
                if (scriptFile.exists() && scriptFile.isFile()) {

                    // Ajout de son contenu dans le fichier de script en cours
                    FileUtils.fileAppend(dropFile.getAbsolutePath(), "\n\n" + FileUtils.fileRead(scriptFile));

                } else {

                    // Ajout du script dans le fichier
                    FileUtils.fileAppend(dropFile.getAbsolutePath(), "\n\t" + script);
                }
            }

            // Si le chemin des scripts de mise a jour est positionne
            if (updateOutputFile != null && !updateOutputFile.trim().isEmpty()) {

                // Parcours de la liste des scripts de mise a jour
                for (String script : extendedScripts.getUpdateScripts()) {

                    // Tentative de construction d'un File sur le la chaine script
                    File scriptFile = new File(script);

                    // Si l'objet existe et est un fichier
                    if (scriptFile.exists() && scriptFile.isFile()) {

                        // Ajout de son contenu dans le fichier de script en cours
                        FileUtils.fileAppend(updateFile.getAbsolutePath(),
                                "\n\n" + FileUtils.fileRead(scriptFile));

                    } else {

                        // Ajout du script dans le fichier
                        FileUtils.fileAppend(updateFile.getAbsolutePath(), "\n\t" + script);
                    }
                }

            }
        }

    } catch (Exception e) {

        // On relance
        throw new MojoExecutionException(e.getMessage(), e);

    } finally {

        // On repositionne la sortie standard
        System.setOut(oldOut);

        // On repositionne le classloader
        currentThread.setContextClassLoader(oldClassLoader);
    }
}

From source file:org.dspace.app.cris.util.UpdateSchemaTool.java

private SchemaUpdate getSchemaUpdate(Configuration cfg) throws HibernateException, IOException {
    Properties properties = new Properties();
    properties.putAll(cfg.getProperties());
    if (propertiesFile == null) {
        properties.putAll(getProject().getProperties());
    } else {//from w ww  .  j  a  v a  2s.  com
        properties.load(new FileInputStream(propertiesFile));
    }
    cfg.setProperties(properties);
    SchemaUpdate su = new SchemaUpdate(cfg);
    su.setOutputFile(outputFile.getPath());
    su.setDelimiter(delimiter);
    su.setHaltOnError(haltOnError);
    return su;
}

From source file:play.modules.db.Updater.java

License:Apache License

public static void main(String[] args) throws Exception {

    File root = new File(System.getProperty("application.path"));
    Play.init(root, System.getProperty("play.id", ""));
    List<Class> entities = Play.classloader.getAnnotatedClasses(Entity.class);
    AnnotationConfiguration cfg = new AnnotationConfiguration();
    cfg.setProperty("hibernate.hbm2ddl.auto", "create");
    for (Class _class : entities) {
        cfg.addAnnotatedClass(_class);
    }/* w ww  .  j  a v a  2  s . c  o m*/

    Thread.currentThread().setContextClassLoader(Play.classloader);
    final String dialect = Play.configuration.getProperty("jpa.dialect");
    if (dialect != null)
        cfg.setProperty("hibernate.dialect", dialect);

    final String driver = Play.configuration.getProperty("db.driver");
    if (driver != null)
        cfg.setProperty("hibernate.connection.driver_class", driver);

    final String user = Play.configuration.getProperty("db.user");
    if (user != null)
        cfg.setProperty("hibernate.connection.username", user);

    final String password = Play.configuration.getProperty("db.pass");
    if (password != null)
        cfg.setProperty("hibernate.connection.password", password);

    final String url = Play.configuration.getProperty("db.url");
    if (url != null)
        cfg.setProperty("hibernate.connection.url", url);

    boolean script = true;
    boolean drop = false;
    boolean create = false;
    boolean halt = false;
    boolean export = false;
    String outFile = null;
    String importFile = "/import.sql";
    String propFile = null;
    boolean format = true;
    String delim = ";";

    for (int i = 0; i < args.length; i++) {
        if (args[i].startsWith("--")) {
            if (args[i].equals("--quiet")) {
                script = false;
            } else if (args[i].equals("--drop")) {
                drop = true;
            } else if (args[i].equals("--create")) {
                create = true;
            } else if (args[i].equals("--haltonerror")) {
                halt = true;
            } else if (args[i].equals("--export")) {
                export = true;
            } else if (args[i].startsWith("--output=")) {
                outFile = args[i].substring(9);
            } else if (args[i].startsWith("--import=")) {
                importFile = args[i].substring(9);
            } else if (args[i].startsWith("--properties=")) {
                propFile = args[i].substring(13);
            } else if (args[i].equals("--noformat")) {
                format = false;
            } else if (args[i].startsWith("--delimiter=")) {
                delim = args[i].substring(12);
            } else if (args[i].startsWith("--config=")) {
                cfg.configure(args[i].substring(9));
            } else if (args[i].startsWith("--naming=")) {
                cfg.setNamingStrategy(
                        (NamingStrategy) ReflectHelper.classForName(args[i].substring(9)).newInstance());
            }
        }

    }

    if (propFile != null) {
        Properties props = new Properties();
        props.putAll(cfg.getProperties());
        props.load(new FileInputStream(propFile));
        cfg.setProperties(props);
    }

    SchemaUpdate se = new SchemaUpdate(cfg);
    se.setHaltOnError(halt);
    se.setOutputFile(outFile);
    se.setDelimiter(delim);
    if (format) {
        se.setFormat(true);
    }
    se.execute(script, false);
}