[Catalyst] Developing a Quickbase look-alike

Drew Taylor taylor.andrew.j at gmail.com
Sun May 28 03:58:18 CEST 2006

On 5/25/06, Matt S Trout <dbix-class at trout.me.uk> wrote:
> Drew Taylor wrote:
> > Hi everyone,
> > My boss at $work today asked me to setup an environment for developing
> > something like Quickbase for our internal use due to very sensitive
> > data. He initially suggested Rails, but I've convinced him to give
> > Catalyst a shot since we're already a perl shop. :-) Authentication and
> > ACL controls are VERY important, to which I responded "We've got
> > prebuilt plugins for that." :-) So now the hard part is figuring out how
> > to replicate the ease-of-use of Quickbase, but with the goodness of
> > Catalyst & perl.
> >
> > I think I'm going to use Mason since we already use it all over the
> > place (interestingly enough we use Mason as a front end to
> > HTML::Template). But I'm less sure how to go about the DB side of
> > things. One of the killer features of QB is that it's dead easy to
> > change schemas. That functionality won't necessarily be needed
> > initially, but it sure is a cool feature. Some sort of a DBMS is
> > obviously required, but if I use mysql how do I go about the schema
> > changes, and more importantly how do I keep the model definitions up to
> > date? Performance is not a real issue since it will be for small-scale
> > internal use (famous last words I know...), so perhaps DBD or some other
> > "flat file" DB would be appropriate? The alternative is mysql with
> > either DBIx::Class or Rose. Schema altering functionality will be locked
> > down very tight, so I'm less concerned about allowing schema alterations
> > through the web UI than I normally would be.
> >
> > Ultimately the biggest challenge is allowing schema definition changes.
> > I suppose the alternative is using custom field definitions is a
> > separate table and doing joins to get the data, but that is not very
> > appealing to me. Anyone done this type of thing before?
> Two easy enough approaches - first, just manipulate the db schema and
> use DBIx::Class::Schema::Loader
> Second, have a look at the versioning branch in DBIC svn - if you're not
> expecting to go live for a couple months this will hopefully be ready in
> time for you (it's more work than it might sound since we have quite a
> few databases to support).

Sorry for the delay - opening a store and sick child don't make for good
turnaround time.
As it turns out, my boss doesn't actually need to change the schema from the
web UI. He wants to make his changes in emacs, so that removes a whole bunch
of complexity. I'll probably still use a Loader version of whatever ORM I
decide on to make it easy to handle the schema changes.

Or you could have a look at rob kinyon's DBM::Deep which just acquired
> ACID transaction support in spite of being basically a hashed database
> thing. Most impressive.

I'll look into this module. I remember seeing it on CPAN, but didn't look
into the guts of it.

Drew Taylor                 *  Web development & consulting
Email: drew at drewtaylor.com  *  Site implementation & hosting
Web  : www.drewtaylor.com   *  perl/mod_perl/DBI/mysql/postgres
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rawmode.org/pipermail/catalyst/attachments/20060527/cbcdac55/attachment.htm 

More information about the Catalyst mailing list