Settings

Open the Settings dialog from Model → Settings.

DbSchema Settings Dialog

The dialog has two tabs: Interface (general application settings) and Database Specific (per-database configuration). Read the description displayed below each setting title for guidance.

General / Interface Tab

The Interface tab controls application-wide behaviour:

  • Language — change the UI language.
  • Date and number formats — configure how dates and numbers are displayed throughout the application.
  • Proxy — configure an HTTP proxy if DbSchema needs one to download JDBC drivers or check for updates.
  • SQL Editor — set default SQL editor preferences (font size, auto-completion behaviour, etc.).
  • Data Generator — configure defaults for the data generation tool.
  • HTML5 Documentation — set options for the generated HTML5 documentation output, including diagram vector image and column comments as tooltips.
  • Check for updates — control automatic update checking.
  • Store locations — view or change the directories where DbSchema stores the design model files and JDBC drivers.

Notable Interface Settings

  • Reverse Engineer / Log DDL statements — a few databases reverse-engineer the schema by parsing DDL. Enabling this option lets you view the DDL in the Help / Output Logs for debugging purposes.
  • Reverse Engineer / Read-Only Connection — blocks all schema modifications and data modifications in DbSchema. Use this to prevent accidental changes on production databases.

Database-Specific Tab

The Database Specific tab lets you tune DbSchema's behaviour for a particular database engine. Databases are customizable, making it straightforward to add support for a new database to the known list.

SQL Language / Groovy Templates

Tables, columns, indexes, and foreign keys are created and modified using SQL ALTER TABLE commands. These statements are configurable, so you can correct any incompatibilities yourself. The correct syntax can usually be found in the database vendor's documentation.

The statements use Groovy expressions defined with &#36;{variable} syntax, or inline code blocks using <% code %>. Groovy templates allow conditional logic inside the SQL statements. You can see examples for each database in the Settings dialog.

Formatting

Under Formatting you can configure letter-case sensitivity. Many databases convert table and column names to uppercase or lowercase (MySQL uses lowercase, Oracle uppercase). If you want to preserve exact case, you can enable quoting. DbSchema applies the case conversion directly in the table and column dialog so names appear as they will in the database.

Data Type Settings

You can edit, add, or remove data types for each database. Each data type has the following properties:

  • Data type — the name of the data type as it appears in the database (e.g., VARCHAR, NUMBER).
  • Java type mapping — maps the database type to a standard Java type. This is used when converting a model from one database to another to find the best matching type.
  • Precision — defines how the type accepts size or precision arguments:
    • LENGTH — the type takes a maximum length (e.g., VARCHAR(100)).
    • PRECISION — the type takes a numeric precision (e.g., NUMBER(4)).
    • DECIMAL — the type takes both precision and scale (e.g., NUMBER(4,2)).
    • ENUMERATION — the type takes a list of allowed values.
    • NONE — the type needs no size specification (e.g., INTEGER).

Reverse Engineer Settings

DbSchema uses the JDBC driver to retrieve table, column, and foreign key information from the database. Custom queries are only used for triggers, procedures, and functions, as these are not exposed by the standard JDBC API.

These queries typically return standard columns such as schema name, object name, and source code text. If you notice that procedures or triggers are not being reversed correctly for your database, please report it so the queries can be improved.