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:
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.
If you made it this far, you may as well follow me on LinkedIn: Follow Brian Porter