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 [email protected].
For more options, visit https://groups.google.com/d/optout.