Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^4: Why did DBIC overtake CDBI?

by siracusa (Friar)
on Sep 13, 2006 at 12:45 UTC ( [id://572730]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Why did DBIC overtake CDBI?
in thread Why did DBIC overtake CDBI?

I know that Class::DBI::Loader will automatically load tables, columns and relationships. But does it, for example, automatically turn DATETIME columns into DateTime objects[1]? Or use column types to determine valid values for attributes? [...]

[1] The key word here being "automatically". I know you can use the inflate/deflate functionality, but as far as I know you need to set that up explicitly.

FWIW, Rose::DB::Object will do this for you—and not just for DATETIME columns. It'll also turn BIT columns into Bit::Vector objects, TIME (or DATETIME HOUR TO (MINUTE|SECOND)) columns into Time::Clock objects, Postgres arrays (e.g., INT[]) into Perl arrays, BOOLEAN columns into 1 or 0 (regardless of whether the db uses "f", "false", "F", or whatever), BIGINT columns into Math::BigInt objects, and so on. (It'll also detect ENUM fields and constrain them to the valid set of values, validate dates and times, etc.)

As I said in the presentation at YAPC, the talk is misnamed. Even when I first wrote it, it should have been called "What's Wrong With Some Current ORM Implementations". These days, it should really be called something like "Things To Look For When Choosing An ORM".

Indeed :)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://572730]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (5)
As of 2024-04-18 03:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found