Thanks for the response!

I was able to find documentation on how web2py stores metadata in *.table 
files. So I understand what you are saying about them, and I agree that 
turning off migrations when running remotely would get rid of the error. 

But my question was about how/when web2py decides it needs to create the 
"web2py_filesystem" table for storing metadata without a filesystem and 
how/when it decides to look for metadata in that table, rather than the 
file system. 

I found this answer 
<https://groups.google.com/d/msg/web2py/TLlMMBYchGQ/SIdLQOPLTOYJ> from 
Massimo on another thread:

web2py stores metadata about DB tables which have been created. This is 
> necessary for migrations. Normally this metadata is store in *.table files. 
> Heroku has a strange filesystem that gets wiped up at random times. For 
> this reason the *.table files are not in the "normal filesystem". Web2py 
> creates a filesystem in database in a table called "web2py_filesystem" and 
> stores the *.table files in there.


So I just would like to understand how this happens. Is there a place in 
the source I could start reading that handles this?

Thank you.


On Monday, August 31, 2015 at 9:48:59 PM UTC-4, Anthony wrote:
>
> The *.table files include metadata about the tables for use with the 
> migrations functionality. If the *.table file is missing and migrations are 
> turned on, web2py will assume the associated table needs to be created 
> (resulting in an error if it already exists). Probably you simply want to 
> turn off migrations in the production environment.
>
> Anthony
>
> On Monday, August 31, 2015 at 9:00:38 PM UTC-4, James McGlynn wrote:
>>
>>
>> class 'psycopg2.ProgrammingError' relation "my_table" already exists
>>
>> I have configured my app so that I can set a flag to use either a local 
>> sqlite db, or a remote Heroku db when running locally, but when running 
>> remotely on Heroku, the Heroku db is always used. The databases do not 
>> contain the same data, nor do I need/want them to. 
>>
>> I have come across this error a few times now for different reasons. I'm 
>> pretty comfortable with resolving it at this point, but one way I 
>> consistently get the error is by creating a new table while developing 
>> locally with sqlite and then pushing my changes to Heroku, without first 
>> running locally with the postgresql db.
>>
>> Can someone explain why my app seems to need a .table file for the new 
>> table to be pushed to heroku, even though it gets eventually removed by 
>> Heroku anyway? Does the logic for the storing metadata in the db use the 
>> .table files in the filesystem to create the metadata stored in the db the 
>> first time it senses that its running on Heroku or something?
>>
>> How would this work on a platform like elasticbeanstalk, which doesn't 
>> offer the luxury of having the files on the file system temporarily 
>> available after a push. 
>>
>

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

Reply via email to