Enterprise Java
How to use Hibernate to generate a DDL script from your Play! Framework project
Ok, so you have been using the hibernate property name=“hibernate.hbm2ddl.auto” value=“update” to continuously update your database schema, but now you need a complete DDL script?
Use this method from you Global Class onStart to export the DDL scripts. Just give it the package name (with path) of your Entities as well as a file name:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 | public void onStart(Application app) { exportDatabaseSchema( "models" , "create_tables.sql" ); } public void exportDatabaseSchema(String packageName, String scriptFilename) { final Configuration configuration = new Configuration(); final Reflections reflections = new Reflections(packageName); final Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Entity. class ); // iterate all Entity classes in the package indicated by the name for ( final Class<?> clazz : classes) { configuration.addAnnotatedClass(clazz); } configuration.setProperty( "hibernate.dialect" , "org.hibernate.dialect.PostgreSQL9Dialect" ); SchemaExport schema = new SchemaExport(configuration); schema.setOutputFile(scriptFilename); schema.setDelimiter( ";" ); schema.execute(Target.SCRIPT, SchemaExport.Type.CREATE ); // just export the create statements in the script } |
That is it!
Thanks to @MonCalamari for answering my Question on Stackoverflow here.
Reference: | How to use Hibernate to generate a DDL script from your Play! Framework project from our JCG partner Brian Porter at the Poornerd blog. |