As Corion said this is a bit under specified - but DBIx::Class can be used with any DB schema - it does not impose any naming conventions, you can use composed (multi column) primary keys and I am pretty sure you can do single table inheritance with it. Unfortunately you'll need to wait a bit for the complete moosification of DBIx::Class. You can also have a look at Fey::ORM - which is Moose based, but is still experimental.