I don't know - I see this:
db.py", line 7, in <module>
session.connect(request, response, db=db,
tablename='session_record')
and I wonder how (and why) you've manually created a table for sessions
(instead of letting web2py automatically create a table, using
session.connect)...
If I missed something earlier in the thread, or somewhere else, I
apologize...
Can you show us your table definition for session_record?
On Sat, Nov 22, 2008 at 10:47 AM, mdipierro <[EMAIL PROTECTED]> wrote:
>
> on the case. May be a bug.
>
> Massimo
>
> On Nov 22, 3:50 am, morningovermidnight <[EMAIL PROTECTED]>
> wrote:
> > How can I fix that? I tried using session.connect(request, response,
> > db) instead of session.connect(request, response, db=db,
> > tablename='session_record'), but I still get the same thing...no
> > session info. I did a clean of my cookies, .table files, and restarted
> > the server. It did create a new table, web2y_session_office, but still
> > is not returning the session flashes.
> >
> > On Nov 22, 1:56 am, mdipierro <[EMAIL PROTECTED]> wrote:
> >
> > > Yes!
> >
> > > That is the problem. Your session_data is 'text' while it should be
> > > 'bytea'. web2py is attempting a migration losing data and postgres
> > > does not allow copy text into a bytea.
> >
> > > Massimo
> >
> > > On Nov 22, 12:26 am, morningovermidnight <[EMAIL PROTECTED]>
> > > wrote:
> >
> > > > Ok, with version 1.51 running I added the line to gluon/globals.py.
> > > > Here's the message returned:
> >
> > > > Traceback (most recent call last):
> > > > File "/home/basic/workbench/sites/newsite/gluon/restricted.py",
> line
> > > > 62, in restricted
> > > > exec ccode in environment
> > > > File
> "/home/basic/workbench/sites/newsite/applications/office/models/
> > > > db.py", line 7, in <module>
> > > > session.connect(request, response, db=db,
> > > > tablename='session_record')
> > > > File "/home/basic/workbench/sites/newsite/gluon/globals.py", line
> > > > 160, in connect
> > > > db.Field('session_data','blob'),migrate=table_migrate)
> > > > File "/home/basic/workbench/sites/newsite/gluon/sql.py", line 567,
> > > > in define_table
> > > > raise e
> > > > ProgrammingError: column "session_data__tmp" is of type bytea but
> > > > expression is of type text
> > > > LINE 2: UPDATE session_record_office SET
> > > > session_data__tmp=session_d...
> > > > ^
> > > > HINT: You will need to rewrite or cast the expression.
> >
> > > > Is this because I defined my own table name for sessions? Should I
> > > > just let web2py handle that?
> >
> > > > On Nov 21, 8:46 pm, mdipierro <[EMAIL PROTECTED]> wrote:
> >
> > > > > I did a diff of 1.51 vs 1.47. As I remembered the only think that
> > > > > changed in session management is storing the pickle from 'text' to
> > > > > 'blob'. This actually fixed a problem with sessions in mysql, as
> > > > > pointed out by CJ.
> >
> > > > > Please do a test for me. In gluon/globals.py
> >
> > > > > replace these lines with:
> >
> > > > > except Exception, e:
> > > > >
> record_id,unique_key,session_data=None,str(uuid.uuid4
> > > > > ()),{}
> >
> > > > > with
> >
> > > > > except Exception, e:
> > > > > print 'error:',e
> > > > >
> record_id,unique_key,session_data=None,str(uuid.uuid4
> > > > > ()),{}
> >
> > > > > and tell me what it prints, if anything.
> >
> > > > > Massimo
> >
> > > > > On Nov 21, 4:25 pm, morningovermidnight <
> [EMAIL PROTECTED]>
> > > > > wrote:
> >
> > > > > > Ok, I tried it out...removed the .table files, dropped the
> session
> > > > > > table, removed cookies, still same problem...nothing being
> returned
> > > > > > from sessions. Specifically, I have a login form. When the wrong
> > > > > > username is entered, there is a session flash that says "invalid
> > > > > > username". This doesn't show with web2py version 1.51. After
> doing
> > > > > > what you mentioned above and it still not working, I dropped the
> 1.47
> > > > > > source into my application folder to downgrade back to version
> 1.47,
> > > > > > started the server, and now my session flash works flawlessly.
> >
> > > > > > On Nov 21, 4:57 pm, morningovermidnight <
> [EMAIL PROTECTED]>
> > > > > > wrote:
> >
> > > > > > > I am using PostgreSQL, but I will try what you recommend and
> let you
> > > > > > > know how it works out.
> >
> > > > > > > On Nov 21, 3:57 pm, mdipierro <[EMAIL PROTECTED]> wrote:
> >
> > > > > > > > Are you using mysql? The problem may be a bug in web2py 1.47
> that has
> > > > > > > > been fixed in an non-backward incompatible way. In 1.47 a
> session was
> > > > > > > > picked in a text field. In mysql text fields cannot be longer
> than
> > > > > > > > 2**16 bytes. So since 1.48 they are pickled in a blob.
> >
> > > > > > > > Try 1.51 again but please drop the web2py_session table and
> remove the
> > > > > > > > corresponding .table file from the databases folder. The
> clear
> > > > > > > > cookies. Let me know if this fixes the problem.
> >
> > > > > > > > Massimo
> >
> > > > > > > > On Nov 21, 2:48 pm, morningovermidnight <
> [EMAIL PROTECTED]>
> > > > > > > > wrote:
> >
> > > > > > > > > Thanks for the reply. I tried deleting all sessions from
> the database,
> > > > > > > > > still did not solve the problem for me. In doing some
> investigation to
> > > > > > > > > solve the problem, I changed my web2py version from 1.51 to
> version
> > > > > > > > > 1.47 (replaced files with the 1.47 source). Now, everything
> works
> > > > > > > > > perfectly. Not sure if some of my code is incompatible with
> version
> > > > > > > > > 1.51 or not, but I'll be sticking with 1.47 for now at
> least...
> >
> > > > > > > > > Thanks
> >
> > > > > > > > > On Nov 21, 3:31 pm, kev <[EMAIL PROTECTED]> wrote:
> >
> > > > > > > > > > Try deleting all the session from the database.
> >
> > > > > > > > > > On Nov 21, 2:51 pm, morningovermidnight <
> [EMAIL PROTECTED]>
> > > > > > > > > > wrote:
> >
> > > > > > > > > > > I'm not sure what's happening. It was all working
> before. I was
> > > > > > > > > > > storing sessions in the database and working with them
> throughout my
> > > > > > > > > > > application with no problem. Now, it seems suddenly,
> sessions have
> > > > > > > > > > > stopped working. I don't get a session.flash or any
> other session
> > > > > > > > > > > objects returned. When I comment out the
> session.connect(request,
> > > > > > > > > > > response, db=db, tablename='session_record') to store
> sessions on the
> > > > > > > > > > > filesystem, everything then works perfectly. Once I
> uncomment that
> > > > > > > > > > > line to store in the database again, I can no longer
> access my
> > > > > > > > > > > session. I checked the database...there are session
> records being
> > > > > > > > > > > recorded in the database, but for whatever reason they
> are not being
> > > > > > > > > > > returned to the application? Any thoughts?
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" 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/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---