The way I understand the problem is that all time object when saved into a
database lose their timezone properties.
this patch, make AR aware of timezones, and ensures that it does the right
conversions when storing time objects for example:
if you save last_compile in local time, AR will store it as utc, but when
you read it AR will return a time object with local time zone offset.

this is important when you share your database with other applications,
where they expect all datetime objects to be in UTC.
This does not change any other behavior of writing time in other places -
e.g. your yaml files will still contain the timezone information as they are
a dump of Time objects.

Ohad

On 9/17/09, Luke Kanies <[email protected]> wrote:
>
>
> How does this affect the rest of the system?  It sets the TZ to UTC
> for everything, right?
>
> I know we should be doing this anyway, but if so we need to do so as
> part of a more obvious effort, rather than just as a Rails fix.
>
> On Sep 16, 2009, at 6:13 AM, Ohad Levy wrote:
>
> > From 1368df476535169785812c2f6400f84a4f5064bc Mon Sep 17 00:00:00 2001
> > From: Ohad Levy <[email protected]>
> > Date: Wed, 16 Sep 2009 21:08:23 +0800
> > Subject: [PATCH/puppet 1/1] fixes #2518 - This defaults all datetime
> > fields in ActiveRecord to store in UTC vs the puppetmaster localtime
> > Signed-off-by: Ohad Levy <[email protected]>
> >
> > ---
> >  lib/puppet/rails.rb |    6 ++++++
> >  1 files changed, 6 insertions(+), 0 deletions(-)
> >
> > diff --git a/lib/puppet/rails.rb b/lib/puppet/rails.rb
> > index fc8eacd..c8e9947 100644
> > --- a/lib/puppet/rails.rb
> > +++ b/lib/puppet/rails.rb
> > @@ -22,6 +22,12 @@ module Puppet::Rails
> >              ActiveRecord::Base.logger.level = Logger::DEBUG
> >          end
> >
> > +        # Ensure that Active Record uses UTC to store datetime
> > +        # fixes #2518
> > +        Time.zone = "UTC"
> > +        ActiveRecord::Base.time_zone_aware_attributes = true
> > +        ActiveRecord::Base.default_timezone = "UTC"
> > +
> >          ActiveRecord::Base.verify_active_connections!
> >
> >          begin
> > --
> > 1.6.0.4
> >
> >
> > >
>
>
>
> --
> One of the Ten Commandments for Technicians:
>      (7) Work thou not on energized equipment, for if thou dost, thy
>      fellow workers will surely buy beers for thy widow and
>      console her in other ways.
> ---------------------------------------------------------------------
> Luke Kanies | http://reductivelabs.com | http://madstop.com
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to