 <p>Okey after some research I found the answer. All you need is to ask <strong>sessionFactoryBuilder</strong> to generate update scripts for your database and execute than with <strong>JdbcTemplate</strong>.</p> <pre><code> LocalSessionFactoryBuilder sessionFactory = new LocalSessionFactoryBuilder(dataSource); sessionFactory.scanPackages("su"); JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); try{ List&lt;SchemaUpdateScript&gt; scripts = sessionFactory.generateSchemaUpdateScriptList(new PostgreSQL9Dialect(), new DatabaseMetadata(dataSource.getConnection(), new PostgreSQL9Dialect(), sessionFactory)); log.info("Schema update scripts["+scripts.size()+"]"); for (SchemaUpdateScript script:scripts ) { log.info(script.getScript()); jdbcTemplate.execute(script.getScript()); } }catch (Exception e){ log.error("error updating schema",e); } </code></pre>