I think I may have made sense of the error above.  Based on the code below, 
DatabaseStoredFile.web2py_filesystem is set to true even if the table 
creation fails (which it does), as I don't think the error will be caught 
before it gets to that line.  A few lines later, it tries to access that 
table, causing the error logged by Heroku.  Therefore, the key error seems 
to be that the creation of the web2py_filesystem table is failing.


        if not self.web2py_filesystem:

            if db._adapter.dbengine == 'mysql':

                sql = "CREATE TABLE IF NOT EXISTS web2py_filesystem (path 
VARCHAR(255), content LONGTEXT, PRIMARY KEY(path) ) ENGINE=InnoDB;"

            elif db._adapter.dbengine in ('postgres', 'sqlite'):

                sql = "CREATE TABLE IF NOT EXISTS web2py_filesystem (path 
VARCHAR(255), content TEXT, PRIMARY KEY(path));"

            self.db.executesql(sql)

            DatabaseStoredFile.web2py_filesystem = True


On Thursday, March 13, 2014 11:40:59 AM UTC-4, Chris DeGroot wrote:
>
> I am looking again at the Heroku logs, specifically the line
>
> ERROR:web2py.dal:Could not retrieve applications/CaeSuite/databases/
> 9e6a7c1bb77d791a89631de258057aed_web2py_session_CaeSuite.table
>
> Why is it looking for a file in */databases? 
>
> Chris
>
> On Thursday, March 13, 2014 10:14:32 AM UTC-4, Massimo Di Pierro wrote:
>>
>> Is this is a problem that worked before and then stopped working? Have 
>> you changed anything on the database side? Do you have data that you need 
>> to recovered.
>>
>> If at all an option, try delete the database and make a new one. 
>>
>> Somehow there is a problem with the web2py_filesystem table where web2py 
>> stores metadata on platforms that lack a persistent filesystem. This an be 
>> recovered but it is complicated to explain without direct access to the 
>> system. It really depends on how it got there and what is in there.
>>
>> Massimo
>>
>>
>> On Wednesday, 12 March 2014 17:53:08 UTC-5, Chris DeGroot wrote:
>>>
>>> Hello;
>>>
>>> I have tried everything I could think of to solve this problem, but I 
>>> just can't find a solution.  I am trying to deploy my application to 
>>> Heroku, following the instructions in the web2py manual.  The welcome app 
>>> works fine, so I think generally I have deployed the app properly.  The 
>>> application works on my local machine.  The error I am getting looks like 
>>> this:
>>>
>>> Traceback (most recent call last):
>>>   File "/app/web2py/gluon/restricted.py", line 217, in restricted
>>>     exec ccode in environment
>>>   File "/app/web2py/applications/CaeSuite/models/db.py" 
>>> <https://warm-basin-8163.herokuapp.com/admin/default/edit/CaeSuite/models/db.py>,
>>>  line 16, in <module>
>>>     db = get_db(name=None, pool_size=10)
>>>   File "/app/web2py/gluon/contrib/heroku.py", line 26, in get_db
>>>     current.session.connect(current.request, current.response, db=db)
>>>   File "/app/web2py/gluon/globals.py", line 869, in connect
>>>     migrate=table_migrate,
>>>   File "/app/web2py/gluon/dal.py", line 8223, in define_table
>>>     table = self.lazy_define_table(tablename,*fields,**args)
>>>   File "/app/web2py/gluon/dal.py", line 8260, in lazy_define_table
>>>     polymodel=polymodel)
>>>   File "/app/web2py/gluon/dal.py", line 1102, in create_table
>>>     query), table)
>>>   File "/app/web2py/gluon/dal.py", line 850, in log
>>>     logfile = self.file_open(table._loggername, 'a')
>>>   File "/app/web2py/gluon/dal.py", line 4578, in file_open
>>>     return DatabaseStoredFile(self.db,filename,mode)
>>>   File "/app/web2py/gluon/dal.py", line 4506, in __init__
>>>     self.db.executesql(sql)
>>>   File "/app/web2py/gluon/dal.py", line 8433, in executesql
>>>     adapter.execute(query)
>>>   File "/app/web2py/gluon/dal.py", line 1969, in execute
>>>     return self.log_execute(*a, **b)
>>>   File "/app/web2py/gluon/dal.py", line 1963, in log_execute
>>>     ret = self.cursor.execute(command, *a[1:], **b)
>>> InternalError: current transaction is aborted, commands ignored until end 
>>> of transaction block
>>>
>>> Variablesself.cursor.execute<built-in method execute of 
>>> psycopg2._psycopg.cursor 
>>> object>self<gluon.contrib.heroku.HerokuPostgresAdapter 
>>> object>self.cursor<cursor object at 0x287a338; closed: 0>b{}a('CREATE TABLE 
>>> IF NOT EXISTS web2py_filesystem (path VARCHAR(255), content TEXT, PRIMARY 
>>> KEY(path));',)retundefinedcommand'CREATE TABLE IF NOT EXISTS 
>>> web2py_filesystem (path VARCHAR(255), content TEXT, PRIMARY KEY(path));'
>>>
>>>
>>> I would really appreciate any help!!  Thanks,
>>>
>>>
>>> Chris
>>>
>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to