I''ll elaborate with code and URLs if it helps but I''ll start just describing the problem and seeing if anyone can help me out with some ideas. I have a method which returns some objects as json via a time_query method on my model - the time query takes a couple of parameters date_from and date_to. The method should return objects within that range (date attribute I''m querying is updated_at). This is pretty much for background, it works fine in development, it doesn''t behave as expected in production. A small test for me is to simply craft a URL which isolates a single record on the basis of it''s updated_at time and returns it to me, ie makes a really tiny time frame between the two dates and get the record I''d expect back - works in dev (i can return a single record), does not work in prod (I can''t). I''m stuck. What else causes dev and prod to behave differently in such circumstances? Things I''ve tried / occured to me - still no luck. 1) caching, am using uncached in my method 2) timezones, env.rb is the same UTC in both 3) browser behaviour, maybe? still need to try this, unlikely though? 4) databases, it''s mysql on dev and prod, UTF8, I''ve just tried dumping the production data to dev and it worked in dev with that production data 5) dates on the server and my mac, I did ./script/console then Time.now and both reported the same as expected 6) apache / passenger config on the server - could this be important? -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
What happens when you run in production mode on your mac (I take it that your mac is the development box)? -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Same thing - it works on my MacBook in prod mode with the production data loaded. Not on my server though. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Peter Hickman
2011-Jan-28 10:48 UTC
Re: Re: production and development - differing behaviour
Do you have the same database on the two machines (ie both running MySQL or something). As this is a method in a model have you checked it from the console in production mode on the production server? If it doesn''t work when directly calling the model method you can eliminate the browser as being an issue. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Peter Hickman wrote in post #978144:> Do you have the same database on the two machines (ie both running > MySQL or something).Yes - same DB on both machines, mysql.> As this is a method in a model have you checked it from the console in > production mode on the production server? If it doesn''t work when > directly calling the model method you can eliminate the browser as > being an issue.Good idea - will try this and report back. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
OK, tested... on my server, in production, ./script/console>> App.time_query("2011-01-28 13:58:38","2011-01-28 13:58:38")=> [#<App id: 700, name: "Dream Home HD", description: "LIMITE.... bla bla bla]>>so it works... returns a single app as I might expect in the browser I do... http://server_ip/apps.json?date_from=2011-01-28T13:58:38Z&date_to=2011-01-28T13:58:38Z I get [ ] So nothing, it doesn''t find the app. in dev on my mac I do a similar thing script console>> App.time_query("2011-01-28 07:07:14","2011-01-28 07:07:14")=> [#<App id: 1167, name: "Ball Dash Pro", bla bla one app returned as expected... browser http://localhost:3000/apps.json?date_from=2011-01-28T07:07:14Z&date_to=2011-01-28T07:07:14Z Guess what ? [{"app":{"name":"Ball Dash Pro","popularity":2,"created_at":"2011-01-14T10:00:52Z","seller_name":"NextGen Entertainment.... bla bla... One app returned as expected ! what else can I look at ? -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Marnen Laibow-Koser
2011-Jan-28 17:49 UTC
Re: production and development - differing behaviour
bingo bob wrote in post #978210:> OK, tested... > > on my server, in production, > > ./script/console > >>> App.time_query("2011-01-28 13:58:38","2011-01-28 13:58:38") > => [#<App id: 700, name: "Dream Home HD", description: "LIMITE.... bla > bla bla] >>> > > so it works... returns a single app as I might expect > > in the browser I do... > >http://server_ip/apps.json?date_from=2011-01-28T13:58:38Z&date_to=2011-01-28T13:58:38Z> > I get > > [ ] > > So nothing, it doesn''t find the app.Testing this way is risky: you might have different data in the two DBs. Instead, compare the SQL generated by the two queries. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Frederick Cheung
2011-Jan-28 18:20 UTC
Re: Re: production and development - differing behaviour
On 28 Jan 2011, at 17:27, bingo bob <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> OK, tested... > > on my server, in production, > > ./script/console > >>> App.time_query("2011-01-28 13:58:38","2011-01-28 13:58:38") > => [#<App id: 700, name: "Dream Home HD", description: "LIMITE.... bla > bla bla]Why did you format the dates differently in the console versus in the URL? Depending on who is parsing those strings it could be obscure differences between versions if mysql, locale or date libraries (eg if different hosts had different versions of libicu) Fred>>> > > so it works... returns a single app as I might expect > > in the browser I do... > > http://server_ip/apps.json?date_from=2011-01-28T13:58:38Z&date_to=2011-01-28T13:58:38Z > > I get > > [ ] > > So nothing, it doesn''t find the app. > > in dev on my mac > > I do a similar thing > > script console > >>> App.time_query("2011-01-28 07:07:14","2011-01-28 07:07:14") > => [#<App id: 1167, name: "Ball Dash Pro", bla bla > > one app returned as expected... > > browser > > http://localhost:3000/apps.json?date_from=2011-01-28T07:07:14Z&date_to=2011-01-28T07:07:14Z > > Guess what ? > > [{"app":{"name":"Ball Dash > Pro","popularity":2,"created_at":"2011-01-14T10:00:52Z","seller_name":"NextGen > Entertainment.... bla bla... > > One app returned as expected ! > > what else can I look at ? > > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en. >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Ok, that makes sense, but how do I see the SQL generated in production. It''s logged by default in dev, but not in prod AFAIK. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Frederick Cheung
2011-Jan-28 18:26 UTC
Re: Re: production and development - differing behaviour
On 28 Jan 2011, at 18:21, bingo bob <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Ok, that makes sense, but how do I see the SQL generated in production. > > It''s logged by default in dev, but not in prod AFAIK.Then change the log level ( in environments/production.rb)> > -- > Posted via http://www.ruby-forum.com/. > > -- > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en. >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
I thought that''s how you had to format dates in a URL to have them recognised by rails. I''ll try it the same as on the console then. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Logging now on in production for a while. so that helps. When the URL is crafted this way it works...(I thought I''d cracked it) IP/apps.json?date_from=2011-01-28%2013:58:38&date_to=2011-01-28%2013:58:38 log Parameters: {"date_to"=>"2011-01-28 13:58:38", "date_from"=>"2011-01-28 13:58:38"} App Load (0.0ms) SELECT * FROM `apps` WHERE (updated_at >= ''2011-01-28 13:58:38'' AND updated_at <= ''2011-01-28 13:58:38'' AND deal = true) ORDER BY updated_at DESC, updated_at ASC LIMIT 20 But then I change the time to 11am "1100" it does this....! IP/apps.json?date_from=2011-01-28%1100:58:38&date_to=2011-01-28%1100:58:38 Processing AppsController#index to json (for 90.211.81.40 at 2011-01-29 07:06:18) [GET] Parameters: {"date_to"=>"2011-01-28\02100:58:38", "date_from"=>"2011-01-28\02100:58:38"} App Load (610.0ms) SELECT * FROM `apps` WHERE (updated_at >= ''2011-01-2800:58:38'' AND updated_at <= ''2011-01-2800:58:38'' AND deal = true) ORDER BY updated_at DESC, updated_at ASC LIMIT 20 Why? How? What next? -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Or to put it another way, what''s the best/correct way to specify DATETIMEs in a URL. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Frederick Cheung
2011-Jan-29 10:51 UTC
Re: production and development - differing behaviour
On Jan 29, 7:08 am, bingo bob <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Logging now on in production for a while. so that helps. > > ''2011-01-28 13:58:38'' AND updated_at <= ''2011-01-28 13:58:38'' AND deal > true) ORDER BY updated_at DESC, updated_at ASC LIMIT 20 > > But then I change the time to 11am "1100" it does this....! > > IP/apps.json?date_from=2011-01-28%1100:58:38&date_to=2011-01-28%1100:58:38 >You haven''t ch age the time to 11am. You''ve added %11 to the URL which will translate to some unprintable control character so mysql can no longer parse the date. It seems like you''re last passing the date strings you get straight through to mysql so I suggest you lookup on mysql what date formats it is guaranteed to understand (or in your controller, ensure that input is appropriately coerced) Fred.> Processing AppsController#index to json (for90.211.81.40at 2011-01-29 > 07:06:18) [GET] > Parameters: {"date_to"=>"2011-01-28\02100:58:38", > "date_from"=>"2011-01-28\02100:58:38"} > App Load (610.0ms) SELECT * FROM `apps` WHERE (updated_at >> ''2011-01-2800:58:38'' AND updated_at <= ''2011-01-2800:58:38'' AND deal > true) ORDER BY updated_at DESC, updated_at ASC LIMIT 20 > > Why? How? What next? > > -- > Posted viahttp://www.ruby-forum.com/.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Is this to do with the T and Z delimiters not being recognised by mysql? -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.