Instant database admin tool with RapidApp and


The new utility script from the RapidApp distribution provides instant CRUD access to databases via built-in web server.


RapidApp is a relatively new extension to Catalyst for quickly creating rich and interactive user-interfaces, primarily using ExtJS, with a focus on database-driven applications. RapidApp also provides its own suite of helpers to bootstrap new applications which work out-of-the-box.

To showcase some of these capabilities, RapidApp also now ships with the utility script which wraps the RapidDbic helper trait to generate and run a fully-working CRUD application on-the-fly with a single command and single DBI connect info (dsn) argument.


To have the script available on your system, simply install RapidApp from CPAN:

  cpanm RapidApp


The temporary application which the script generates includes a full DBIC model loaded with DBIx::Class::Schema::Loader, so all that need be supplied is the DBI connect arguments for the database, such as: dbi:mysql:dbname,dbuser,dbpass

The DSN argument is a hybrid connect info with the username and password (if required) appended with commas as shown above (note there are no spaces after the commas).

Connections which do not require a user/pass, such as SQLite, can be specified simply as: dbi:SQLite:/path/to/sqlt_file.db

As an extra convenience, when connecting to an SQLite database, the argument can be supplied as a simple file-system the path to the database file: /path/to/sqlt_file.db

Once the temporary application is generated it is immediately started using the standard Catalyst test server and can be accessed via:



The only required argument is the dbi connect string, but other options are also available, such as changing the port and altering the high-level CRUD behavior.

To view the list of options simply call the script with no options or with the --help option: --help


The script provides an easy introduction to RapidApp and taste of the kinds of interfaces which RapidApp facilitates, but is also a useful and convenient utility on its own.

In the next article we will look at Plack::App::RapidApp::rDbic which is the module used internally by and can be used and mounted independently within a Plack-based setup.


Henry Van Styn