Back to articles list
- 3 minutes read

How to import an existing database into Vertabelo: Reverse Engineering

The newest Vertabelo feature is Reverse Engineering: a way to import an existing database into Vertabelo. The Reverse Engineering tool is a simple command-line Java application that you can download from our website. It connects to your database, reads the table and view details and stores the info in an XML file. Import the XML file into your database model and voila - your database is in Vertabelo!

How to use the reverse engineering application

Download the Reverse Engineering application from our website, then run the Reverse Engineering application. In Linux:

java -cp .:: com.vertabelo.reverse.Main 
	-url JDBC_URL -user USERNAME -password PASSWORD
In Windows:
java -cp .;; com.vertabelo.reverse.Main 
	-url JDBC_URL -user USERNAME -password PASSWORD

The program prints the output as it runs. First you will see the name of the database engine (deduced from the JDBC connection url) and the name of the driver used. 

Reverse engineering start

Then you will see info on table/view data being extracted. The dot . represents a tiny table (no more than 5 columns), the little o represents a medium-size table, the big O represents a big table (over 20 columns). 

Table info

Once it's done, the program prints the summary and outputs the XML file. 

Reverse Engineering summary

Now, import the file into Vertabelo and you're done!

Import XML file


Fine-tuning the Reverse Engineering application

You can fine-tune the behaviour of the application if you need to. The options are

  • -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. See the regexp option info for details
  • -verbose - enables verbose output
  • -lowercase - changes names of all model elements into lowercase
  • -include-schema - extracts table schema
  • -h, -help, --help - print the help message and exit

What data is read

The application reads data on:

  • tables and views,
  • column names and column types,
  • primary and alternative keys,
  • table checks (column checks are read as table-checks),
  • indexes,
  • references (i.e., foreign keys),
  • sequences.

Supported databases

The Reverse Engineering application can read data from the following databases:

Database JDBC driver Connection URL Remarks
PostgreSQL Download jdbc:postgresql://[HOST][:PORT]/DATABASE
MySQL Download jdbc:mysql://[HOST][:PORT]/DBNAME
Oracle Download jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE
IBM DB2 Download jdbc:db2://[HOST][:PORT]/DATABASE_NAME
HSQLDB Download (The driver is in hsqldb-*.jar file.) jdbc:hsqldb:mem:
Connection string documentation
MS SQL Server Download jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

Diagram drawing

The Reverse Engineering tool lays out the database diagram automatically.

Java Runtime Environment

The Reverse Engineering application is written in Java. To run the application you need Java Runtime Environment (JRE) version 1.8 or higher. If you haven't already done so, download and install  the JRE for your operating system.

Try out our Reverse Engineering tool!

go to top

Our website uses cookies. By using this website, you agree to their use in accordance with the browser settings. You can modify your browser settings on your own. For more information see our Privacy Policy.