/home/jeevanullas

Up in the Cloud!

Visual representation of Eucalyptus database

Thought this might be a useful thing for some folks out there who would like to have a visual representation of the Eucalyptus database schema. Eucalyptus currently uses postgres as the database. It has 1 database (starting 4.1.0) that in turns has many schemas in it. One can use a popular tool like Schemaspy and get going with a visual representation.

On the box running the Eucalyptus database server we need to make sure the package for graphviz is installed. Schemaspy uses graphviz to generate the visual representation.

Once that is done we need to download the JDBC driver for postgresql, I downloaded the latest release from postgres website.

After that you need to download Schemaspy latest release from their website.  The only thing you need in the end is the database password for your Eucalyptus cloud. The password is available in the following file on the box running database:

/var/run/eucalyptus/tx/ha_jdbc_eucalyptus_shared.xml

Once all this information is with you, you can run the below command from where you have the JARs copied (I had them in my home directory):

Note that we passed some options to Schemaspy , mainly the type of database (we are using postgresql here), the database name, the host and port where the DB server is listening, the username, the DB password, connection parameters (I think we don’t need them really) and finally very important “-all” , this parameter tells Schemaspy to (from the website)

“Evaluate all schemas in a database. Generates a high-level index of the schemas evaluated and allows for traversal of cross-schema foreign key relationships”

The outcome was

You can then copy this directory on to a webserver and browse through the schema representation in a web browser. Some sample screenshots are show below:

alt alt

Hope this could be useful for folks who want to understand a bit on how the database schema looks like for Eucalyptus cloud and would like to manipulate it directly for certain use cases they might have.