On 2-May-10, at 12:59 PM, Matt S Trout wrote:
Welcome back.
Thanks!
What about letting S::L pull the column names and then just setting
the
primary keys and adding rels as a fixup?
I think what I'm going to do is make the current views into tables and
then use triggers on the database (probably rules actually, then I
don't have to go faffing around with plsql) to append to the logs when
I update. That'll probably perform better in the long run anyway.
In that case, is there a "read-only" base class kicking around to make
it easier to diagnose errant updates (e.g. by croaking when you try to
use a mutator instead of waiting for the database to reject it with an
ACL)?
Note that once you've got $other_class loaded you can always do
my $source = My::Schema::Foo->result_source_instance;
and then pull the relationships straight out of the main foo source.
See the code in
git://git.shadowcat.co.uk/dbsrights/DBIx-Class-ResultSource-
MultipleTableInheritance.git
for some interesting Pg madness with views and result source
introspection
(also, mad props to Amiri Barksdale for documenting the thing for me
- just
waiting for a couple more people to say "yes it works" and I'll see
about
shipping it to CPAN)
Tempting, but probably opening a can of worms with versions/deployment
etc. Would prefer to stick to CPAN.
It only ever sort of worked. In fact, IME it only worked reliably if
you
were me (or at least wrote all your add_relationship calls by hand
with
explicit join conditions).
After trying about ten different ways to fix it and realising that
very
few people used the thing at all, I ripped it out sideways on the
grounds
that "never works" was overall less annoying than "mostly works
except you
get half way through a project and hit a bug and get an
incomprehensible
error message".
Gotcha.
Also, aliased.pm can pretty much eliminate the extra typing just as
well :)
Yes, that looks like it would work.
Hmm, is there a way to get Schema::Loader to append arbitrary code to
a selection of the files it generates? like
make_schema_at(append_code => sub {
my $table = shift;
return unless $TABLES{$table};
my $code = generate_extra_code_for($table);
return $code;
}); ?
Thanks,
--
Dorian Taylor
http://doriantaylor.com/
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk