Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This tool is used to create an initial DB schema, or update the schema upon code changes to add or change existing fields.  NOTE 

NOTE: fields that get removed are not handled by this process nor are declarations of new indexes nor statements in the "import.sql" file. Changes in these resources will require explicit creation in a database that already is instantiated with data. The default mode is "update" is it does not destroy data. This can be overridden by running with "-Dhibernate.hbm2ddl.auto=create" Additionally, addition of a non-nullable field without a default to a table containing rows already can be problematic.  The typical strategy or adding a non nullable field is this:

  • Add a new field as nullable
  • Set the values appropriately (using an admin task).
  • In a future deployment, update the model to make this field not-nullable.

Following are some details about the implementation of this tool:

...

  • A profile of "Updatedb" must be specified
  • run.config - the standard configuration file specified as a -D parameter
  • hibernate.hbm2ddl.auto - defaulted to required parameter should be set to either  "update" can be used with or "create" for an initial creation
    • Either not passing this property or passing a different value will cause the tool to have no effect.
    • Update mode will add new fields (which can be problematic if they are declared as nullable=false)
    • Create mode will destroy the existnig existing database and remake it anew, including running statements in the "import.sql" file (in admin/mojo/src/main/resources)

...