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
-~----------~----~----~----~------~----~------~--~---