An extra bit of diag on incomplete rsrc re-register
authorPeter Rabbitson <ribasushi@cpan.org>
Fri, 22 Jul 2016 10:59:40 +0000 (12:59 +0200)
committerPeter Rabbitson <ribasushi@cpan.org>
Tue, 26 Jul 2016 09:11:24 +0000 (11:11 +0200)
commitd56e05c74844b8b22f4f66e378b6ef992045a7b5
treea96e31186291fa168038c74866f9e992d4505f9d
parent73f54e275e7dc98b4a082475ff252afdbeca182f
An extra bit of diag on incomplete rsrc re-register

Due to the counterintuitive nature of the metadata subsystem, a user wishing
to modify the metadata for a result class at runtime (post $schema instance
initialization), may end up in a situation where *everything* appears to work
but falls apart on the next call to My::Schema->connect. In fact I myself made
this very mistake in https://github.com/ctrlo/GADS/pull/1/files, even though
I was pretty well aware of the dangers at the time.

In order to make this go away for good reuse the meta-metadata kept around to
track rsrc ancestry and modifications, and emit a warning alerting folks to
the potential problem (the *actual* problematic desync will also be warned
about at a later step by the stale-metadata diag).
lib/DBIx/Class/Schema.pm
xt/extra/diagnostics/incomplete_reregister.t [new file with mode: 0644]