Reverse Engineering

Comprehensive description is available here: https://www.vertabelo.com/blog/documentation/reverse-engineering

Usage:
In order to start as gui: ./run
or in terminal: ./run -url JDBC_URL -user USERNAME -password PASSWORD -o OUTPUT_FILENAME

Options:
-gui - graphical user interface mode
-h, -help, --help - print the help message and exit

-o - the name of the output XML file
-url - JDBC connection URL. The URL format can be found in your database documentation.
-user - database username (optional)
-password - database password (optional)
-driver - JDBC driver name. If it is not specified, a default driver name will be used.
-connection_properties - (optional) connection properties file. Any additional connection properties can be put in this file. The format is the usual Java properties format (list of key=value pairs).

-schema - space-separated list of database schemas to read. If you don't specify the list, the program will read all tables/views in the user schema.
-regexp - extract only tables and views matching the given regular expression. Example: -regexp "user_account|user_profile"

-lowercase - enables changing names of all model elements into lowercase
-include-schema - enables extracting table schema
-verbose - enables verbose output

-useSSL - (optional) connect to database using SSL (more information in the "SSL connection" section)
-truststore_url - (optional) truststore file url (more information in the "SSL connection" section)
-truststore_password (optional) truststore file password (more information in the "SSL connection" section)

Url patterns:
Database      | Connection URL
PostgreSQL    | jdbc:postgresql://[HOST][:PORT]/DATABASE
MySQL         | jdbc:mysql://[HOST][:PORT]/DBNAME
Oracle        | jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE
IBM DB2       | jdbc:db2://[HOST][:PORT]/DATABASE_NAME
HSQLDB        | jdbc:hsqldb:mem: or jdbc:hsqldb:file: or jdbc:hsqldb:http:host:port/dbname
MS SQL Server | jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]


SSL Connection:
1) Using the Graphical User Interface (GUI):
a) Check the "Use SSL" checkbox.
b) If you prefer to use your own truststore file instead of the default one (provided by JDK via the cacerts file), add the trustCertificateKeyStoreUrl property to the connection properties list.
Ensure the value of this property is in the format: file:/{absolute path to file}
c) If the truststore file requires a password, add the trustCertificateKeyStorePassword property to the connection properties list.
2) Using the Command-Line Interface (CLI):
a) Add the -useSSL option to enable SSL connection.
b) To specify a custom truststore file (instead of the default one provided by JDK via the cacerts file), use the -truststore_url option, providing the truststore URL in the format: file:/{absolute path to file}
c) If the truststore file requires a password, use the -truststore_password option and provide the corresponding password.