[Dbix-class] DBIC usage smoke/sanity check

fREW Schmidt frioux at gmail.com
Sat Dec 22 19:46:10 GMT 2012


On Tue, Dec 18, 2012 at 01:59:51PM -0800, Bill Moseley wrote:
> On Tue, Dec 18, 2012 at 12:20 AM, Peter Rabbitson <rabbit+dbic at rabbit.us>wrote:
>
> > On Sat, Dec 15, 2012 at 10:05:07AM -0800, Bill Moseley wrote:
> > > I've been asked to add something to our build process that does some kind
> > > of sanity check on the database.   For example, make sure all columns
> > > defined in the result class exist in the target database.
> > >
> > > I realize this won't catch every potential problem, but should catch
> > > missing columns (or tables) which is our biggest risk.
> > >
> > > This seems like a reasonable way to do this?
> >
> > I personally would opt for an in-memory DBIC::Schema::Loader dump, and
> > then running comparisons between the corresponding resultsource instances.
> > A little bit more work- but much more robust.
> >
>
> Our sources were created by hand, so I doubt the dump would match.    But,
> maybe that's a good reason to update our sources.   We have been pretty
> lazy and not defining that many attributes on our columns.
>

FWIW I've been planning on making a helper that would do this for a
while now.  My plan was to use Schema::Loader to generate the
representation of database and then make two
SQL::Translator::Producers that would generate an introspectable data
structure and a human readable description of the differences,
respectively.

I've manually done something similar by using DBI to read the
INFORMATION_SCHEMA and looking at the sources, but the above is more
generic and may shake out bugs in SL and (of course) SQLT.


--
fREW Schmidt
http://blog.afoolishmanifesto.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
Url : http://lists.scsys.co.uk/pipermail/dbix-class/attachments/20121222/b4a4b11e/attachment.pgp


More information about the DBIx-Class mailing list