Database creation in Mergeant

It’s been a while since I last posted anything, but I’ve nonetheless been busy that time: now Libgda has support for creating and modifying database structures (that is queries like CREATE TABLE, etc).

The pictures below show the database creation dialogs from Mergeant for PostgreSQL and MySQL (notice the small differences in the information required to create a database):

This code is not yet in CVS but will soon be.

Database specific connection parameters in Gnome-DB control center

I spent my last free moments to finish improving the user experience with the Gnome-DB control center, and finally it’s not up to the user to remember which parameter each database requires to open a connection. The control center now offers a much better GUI for that.

The following screenshots show before and after situations when defining a new data source and specifying connection parameters (for a MySQL connection):

and when reading and modifying a data source (for a PostgreSQL connection):

Database creation using the Gnome-DB control center

It’s now possible to create a new database while declaring a new data source from the Gnome-DB control center (at the moment only with SQLite and PostgreSQL backends, more to come).

To create a new database, start normally to declare a new data source as shown in the following screenshot:

then check the “create a new database” option as shown

and fill in the required parameters to create the database as shown in the following picture for SQLite

and in this one for PostgreSQL

Configuring Libgda data sources

Libgnomedb comes with a utility to configure data sources for any application using libgda: gnome-database-properties. I’ve added support to specify if a data source must be specific to the user, or available to all users (system wide).

The way Libgda manages data sources

I’ve been busy lately reworking how libgda manages its data sources and how libgnomedb interracts with them (libgda and libgnomedb are part of the Gnome-Db project).

Libgda stores data sources (a data source tells how to access some data in a database: types of DBMS, database name, connection parameters, etc) in two XML files: a system wide file ($prefix/etc/libgda/config) and a per-user file (~/.libgda/config).

For a long time Libgnomedb did create a copy of all the data sources in GConf to get modifications notifications, but there were corner cases where problems would appear.

Now Libgda uses either Gamin or
FAM when available to monitor config file changes and notify applications directly. The benefits are:

  • less potential bugs
  • data sources management easier to understand
  • less code to maintain in Libgnomedb
  • don’t use GConf when not necessary