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

Reply via email to