I am not using get_db. I am just using DAL and retrieving the database connection string from an environment variable.
db = DAL(os.environ['DATABASE_URL'], pool_size=10) Even though I am just doing this, my app works fine on Heroku until I add a new table definition to my model file and git push before first running the app locally using the Heroku db. It sounds like I should be using get_db instead of what I am doing. I will try to get that working and see if it has any effect on my scenario. If it does stop the error from occurring in that situation, it would still be of interest to me to know why the error is happening given the way I'm doing it now, but I don't want to take any more of your time so I'll just mark this as complete for now and ask a new question if I still can't figure it out by the time I get get_db working. Thanks for your help. On Wednesday, September 2, 2015 at 12:51:10 PM UTC-4, Anthony wrote: > > Hmm, looks like that should work automatically if you're using the Heroku > contrib module to connect to your db. Are you doing: > > from gluon.contrib.heroku import get_db > db = get_db(name=None, pool_size=10) > > Anthony > > > On Tuesday, September 1, 2015 at 11:48:27 PM UTC-4, James McGlynn wrote: >> >> 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.