So, if you are using another ORM, you have to wait for tomorrow ...
As a side note: I was using Rose::DB::Object (RDBO) for years. But I'm slowly changing to DBIx::Class (DBIC). I really liked RDBO and it is a solid ORM. But the community strongly prefers DBIC and I wanted to gain experience with it.
Usually a schema definition looks like this:
package MyDB::Schema::Result::Artist; use base qw/DBIx::Class::Core/; use strict; use warnings; __PACKAGE__->table('artist'); __PACKAGE__->add_columns(qw/id name/); __PACKAGE__->set_primary_key('id'); __PACKAGE__->has_many(cds => 'MyDB::Schema::Result::CD'); 1;
With DBIx::Class::Candy it changes to:
package MyDB::Schema::Result::Artist; use DBIx::Class::Candy; table 'artist'; column id => {data_type => 'int', is_auto_increment => 1}; column name => {data_type => 'varchar', size => 25}; primary_key 'id'; has_many cds => 'MyDB::Schema::Result::CD', 'id'; 1;
I did not like all these __PACKAGE__ calls. This "Moose inspired" syntax is much nicer in my opinion.
Links:
What about Fey?
ReplyDeleteFey was not around when I decided to use RDBO. I looked at Fey::ORM and after Dave's talk at the YAPC::EU 2010 I decided it's no fit for me. I do not remember the exact reasons for this, but I remember clearly me decision. I was glad to put a "checkmark" behind this topic. Especially because the full Moose integration was/is very attractive to me.
ReplyDeleteFor what its worth, I use Moose with DBIC all the time and find it very useful for my result and resultset classes. I've actually used MooseX::Declare with that because I find the method signatures very useful for my domain logic.
ReplyDeleteJohn, can you point me to some example code?
ReplyDeleteThanks.
A good reason to stick with RDBO: https://code.google.com/p/rose/wiki/RDBOBenchmarks
ReplyDeleteYeah, I know. RDBO is really fast. And it really is a very good ORM. I was a happy user all the time. There were a lot of bugs in the beginning, but John fixed them instantly. The documentation is very good, too.
ReplyDeleteIt's just that my priorities have changed. I will explain (and discuss) that in a later blog entry (when the Advent calendar is over).
Still waiting to know why you came to prefer DBIC over RDBO .. ;)
ReplyDeleteYou are absolutely right. I promised (and until now failed to deliver) three things: an Advent calendar reflection, an update to my UUID benchmark and my motivation for switching to RDBO.
ReplyDeleteIn one sentence, I switched because DBIC is the community standard and nowadays I prefer mainstream over fringe group.
I will try to express this a little better in a bigger blog post, but I will write them in above order.