Community contributed extensions

DB module

This module allows you to export your JPA classes to an SQL script or to import a database tables to POJO instances.

Enable the DB module for the application

In the /conf/application.conf file, enable the DB module by adding this line:

# The db  module
module.db=${play.path}/modules/db

You can also define a default schema (as in hibernate.default_schema) with :

# Default Schema
db.default.schema=MY_SCHEMA

Creating an SQL script from your domain model

play db:export myapplication

This command will create the SQL necessary to create your database. This is extremely usefull if you want to deploy your application in production and you are require to update the database manually.
Be sure to configure correctly your JPA dialect in your /conf/application.conf file.

Options (only with play! version greater than 1.0.2.1)

Generate only the SQL drop clauses

play db:export myapplication --drop

Generate only the SQL create clauses

play db:export myapplication --create

Specify the SQL delimiter

play db:export myapplication --delimiter=;

Specify the output file

play db:export myapplication  --output=myfile.ddl

Export to the database

play db:export myapplication  --export

Import extra data to the database (to be use with --export)

play db:export myapplication  --import=import.sql

Do not format the SQL.

play db:export myapplication  --noformat

Halt the export / script generation on the first error

play db:export myapplication  --haltonerror

Creating your domain model from the database

play db:import myapplication

This command will create the classes in the models package based on the database tables. This is useful is you have an existing database and you want to re-use this database.

Be sure to configure correctly your database access using your /conf/application.conf file (db.user, db.pass, db.driver, db.url, etc...).

Options (only with play! version greater than 1.0.2.1)

Enables CRUD Controller generation (with the secure-module annotation).

play db:import myapplication --crud

Disables POJO generation. Useful if you want to keep the already generated files.

play db:import myapplication --no-pojo

Enables reverse engineering customization.
See Hibernate Tools documentation
WARNING: the <table> elements in the reverse engineering file seems to be ignored for POJO and CRUD generation.
<schema-selection>, <type-mapping> and <table-filter> work correctly, though.

play db:import myapplication --reveng=path.to/hibernate.reveng.xml