Does it get easier? You may want to check out
Class::Tables. It's not a C::DBI add-on, but a separate object-relational package which has about the same interface. It does what I think
Class::DBI::Loader should have done: figure out *everything* from the database schema -- not just column and table names, but all the key relationships. The schema becomes its own documentation and you don't have to re-explain how it works to your persistence class. Of course, the tradeoff is the uber-flexibility provided by C::DBI. But I've found it sufficient for most of my simple DB apps.