Hello, Running Ruby 1.8.6 and Rails 2.2.2 against an Oracle XE database (sigh). I just upgraded Rails from 1.2.3 to 2.2.2, which made my cookie based system for storing session information to error out due to the 4Kb limit. So, I tried to turn on the active_record_store system by un- commenting out the "config.action_controller.session_store = :active_record_store" line in environment.rb and then create a db session (db:sessions:create) and run a rake migration (rake db:migrate). Got all that done, which created a table named SESSIONS in the DB. However I had to tweak the migration code because the table name generated was singular (SESSION) and Oracle didn''t like that name. I searched the internet and found a sample where the table name was plural (SESSIONS), so I made the change hoping for the best. Here is the SQL generated: CREATE TABLE "SESSIONS" ( "ID" NUMBER(38,0) NOT NULL ENABLE, "SESSION_ID" VARCHAR2(255) NOT NULL ENABLE, "DATA" CLOB, "CREATED_AT" DATE, "UPDATED_AT" DATE, PRIMARY KEY ("ID") ENABLE ) / CREATE INDEX "INDEX_SESSIONS_ON_SESSION_ID" ON "SESSIONS" ("SESSION_ID") / CREATE INDEX "INDEX_SESSIONS_ON_UPDATED_AT" ON "SESSIONS" ("UPDATED_AT") / But now, when I try to start my application, I get an error I''ve been unable to solve. This is the error: /!\ FAILSAFE /!\ Wed Dec 24 22:36:41 -0500 2008 Status: 500 Internal Server Error "DESC session" failed; does it exist? (eval):3:in ''describe'' c:/ruby/lib/ruby/gems/1.8./gems/activerecord-oracle-adapter01.0.0.9250/ lib/active_record/connection_adapters/oracle_adapter.rb:334: in ''columns'' And here are the first 2 lines of the method: def columns(table_name, name = nil) #:nodoc: (owner, table_name) = @connection.describe(table_name) I believe the problem is in the table name change I made (from singular to plural). I have looked to see if there was a way in Rails to override the name of the table that stores session information but couldn''t find any. I really would appreciate some help on this. Thanks in advance. Pepe --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
kfl62
2008-Dec-25 13:16 UTC
Re: Switching to active_record_store session management errors out
"You may configure the table name, primary key, and data column. For example, at the end of <tt>config/environment.rb</tt>: CGI::Session::ActiveRecordStore::Session.table_name ''legacy_session_table'' CGI::Session::ActiveRecordStore::Session.primary_key = ''session_id'' CGI::Session::ActiveRecordStore::Session.data_column_name ''legacy_session_data'' Note that setting the primary key to the +session_id+ frees you from having a separate +id+ column if you don''t want it. However, you must <tt>session.model.id = session.session_id</tt> by hand! A before filter on ApplicationController is a good place." /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/ session/active_record_store.rb --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
pepe
2008-Dec-25 13:48 UTC
Re: Switching to active_record_store session management errors out
I want to thank whoever sent me the answer below to my e-mail address. I tried to answer the e-mail but the e-mail server returned the e-mail saying the address didn''t exist. This did the trick, but it sparkled another question. I tried to dig through the Rails and Ruby documentations to get to the class where the ''magic'' happens and I am too dense to figure out where it is. I would appreciate if somebody shed some light on how to get there. Thanks a lot. Pepe # You may configure the table name, primary key, and data column. # For example, at the end of <tt>config/environment.rb</tt>: # CGI::Session::ActiveRecordStore::Session.table_name ''legacy_session_table'' # CGI::Session::ActiveRecordStore::Session.primary_key ''session_id'' # CGI::Session::ActiveRecordStore::Session.data_column_name ''legacy_session_data'' # Note that setting the primary key to the +session_id+ frees you from # having a separate +id+ column if you don''t want it. However, you must # set <tt>session.model.id = session.session_id</tt> by hand! A before filter # on ApplicationController is a good place. /usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_controller/ session/active_record_store.rb On Dec 24, 11:35 pm, pepe <P...-1PhG29ZdMB/g+20BJ0uB2w@public.gmane.org> wrote:> Hello, > > Running Ruby 1.8.6 and Rails 2.2.2 against an Oracle XE database > (sigh). > > I just upgraded Rails from 1.2.3 to 2.2.2, which made my cookie based > system for storing session information to error out due to the 4Kb > limit. So, I tried to turn on the active_record_store system by un- > commenting out the "config.action_controller.session_store > = :active_record_store" line in environment.rb and then create a db > session (db:sessions:create) and run a rake migration (rake > db:migrate). > > Got all that done, which created a table named SESSIONS in the DB. > However I had to tweak the migration code because the table name > generated was singular (SESSION) and Oracle didn''t like that name. I > searched the internet and found a sample where the table name was > plural (SESSIONS), so I made the change hoping for the best. Here is > the SQL generated: > > CREATE TABLE "SESSIONS" > ( "ID" NUMBER(38,0) NOT NULL ENABLE, > "SESSION_ID" VARCHAR2(255) NOT NULL ENABLE, > "DATA" CLOB, > "CREATED_AT" DATE, > "UPDATED_AT" DATE, > PRIMARY KEY ("ID") ENABLE > ) > / > > CREATE INDEX "INDEX_SESSIONS_ON_SESSION_ID" ON > "SESSIONS" ("SESSION_ID") > / > > CREATE INDEX "INDEX_SESSIONS_ON_UPDATED_AT" ON > "SESSIONS" ("UPDATED_AT") > / > > But now, when I try to start my application, I get an error I''ve been > unable to solve. This is the error: > > /!\ FAILSAFE /!\ Wed Dec 24 22:36:41 -0500 2008 > Status: 500 Internal Server Error > "DESC session" failed; does it exist? > (eval):3:in ''describe'' > c:/ruby/lib/ruby/gems/1.8./gems/activerecord-oracle-adapter01.0.0.9250/ > lib/active_record/connection_adapters/oracle_adapter.rb:334: in > ''columns'' > > And here are the first 2 lines of the method: > > def columns(table_name, name = nil) #:nodoc: > (owner, table_name) = @connection.describe(table_name) > > I believe the problem is in the table name change I made (from > singular to plural). I have looked to see if there was a way in Rails > to override the name of the table that stores session information but > couldn''t find any. > > I really would appreciate some help on this. > > Thanks in advance. > > Pepe--~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@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 -~----------~----~----~----~------~----~------~--~---