I tested with the welcome app. The script seems to work fine now. Web2py on Heroku opens in a browser after the script runs.
However, there is still a database driver error: <type 'exceptions.RuntimeError'> Failure to connect, tried 5 times: Traceback (most recent call last): File "/app/gluon/dal.py", line 6825, in __init__ self._adapter = ADAPTERS[self._dbname](**kwargs) File "/app/gluon/dal.py", line 2094, in __init__ if do_connect: self.find_driver(adapter_args) File "/app/gluon/dal.py", line 709, in find_driver raise RuntimeError("no driver available %s" % str(self.drivers)) RuntimeError: no driver available ('sqlite2', 'sqlite3') 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Traceback (most recent call last): File "/app/gluon/restricted.py", line 212, in restricted exec ccode in environment File "/app/applications/welcome/models/db.py" <https://obscure-springs-6909.herokuapp.com/admin/default/edit/welcome/models/db.py>, line 15, in <module> db = get_db() File "/app/gluon/contrib/heroku.py", line 28, in get_db db = DAL('sqlite://heroku.test.sqlite') File "/app/gluon/dal.py", line 6844, in __init__ raise RuntimeError("Failure to connect, tried %d times:\n%s" % (attempts, tb)) RuntimeError: Failure to connect, tried 5 times: Traceback (most recent call last): File "/app/gluon/dal.py", line 6825, in __init__ self._adapter = ADAPTERS[self._dbname](**kwargs) File "/app/gluon/dal.py", line 2094, in __init__ if do_connect: self.find_driver(adapter_args) File "/app/gluon/dal.py", line 709, in find_driver raise RuntimeError("no driver available %s" % str(self.drivers)) RuntimeError: no driver available ('sqlite2', 'sqlite3') On Friday, November 30, 2012 6:34:15 AM UTC-8, Massimo Di Pierro wrote: > > You are right. There is a type in the script. I just fixed it in trunk. > The second issue is a bug in dal.py. I also just fixed that. Please check > again and let us know. > > On Thursday, 29 November 2012 14:46:40 UTC-6, Joe Repka wrote: >> >> pip install is not finding postgresql2 for me: >> >> "Could not find any downloads that satisfy the requirement postgresql2 >> No distributions at all found for postgresql2" >> >> I tried installing psycopg2 instead, but no love from that: >> >> "<type 'exceptions.RuntimeError'> Failure to connect, tried 5 times: >> Traceback (most recent call last): File "/app/gluon/dal.py", line 6825, in >> __init__ self._adapter = ADAPTERS[self._dbname](**kwargs) File >> "/app/gluon/dal.py", line 2094, in __init__ if do_connect: >> self.find_driver(adapter_args) File "/app/gluon/dal.py", line 709, in >> find_driver raise RuntimeError("no driver available %s" % self.drivers) >> TypeError: not all arguments converted during string formatting >> " >> >> >> On Thursday, November 29, 2012 7:41:45 AM UTC-8, Massimo Di Pierro wrote: >>> >>> FYI (from web2py-developers) >>> >>> >>> Hello everybody, >>> >>> At PyCon Argentina I met Craig Kerstiens from Heroku. He explained to me >>> how heroku works and we were able to make web2py work on heroku. >>> >>> This is still experimental and I will continue tweak it but you may want >>> to give it a try and share your suggestions for improvement: >>> >>> >>> HOWTO: >>> >>> 1) get a heroku account and SDK (it is all free) >>> >>> 2) download web2py from google code (not from github because you do not >>> want the .git folder) >>> >>> hg clone https://massimo.dipie...@code.google.com/p/web2py/ >>> >>> cd web2py >>> >>> 3) install your web2py apps >>> >>> 4) in each app, replace >>> >>> db=DAL(…) >>> >>> with >>> >>> from gluon.contrib.heroku import get_db >>> >>> >>> db = get_db() >>> >>> 5) from inside the web2py folder do (this create a git repo, if you have >>> one, delete it): >>> >>> scripts/setup-web2py-heroku.sh >>> >>> Now should have your apps running on heroku with postgresql. >>> >>> caveats: >>> >>> get_db() gives you a postgresql connection on heroku and stores >>> sessions, migrations , and uploads in postgres (one db for all apps). When >>> running locally uses a heroku.test.sqlite database (one for each app). I >>> will post instructions so that each app gets its own database. Tickets >>> still go in file system and will be accessible via admin interface but >>> every 24hrs the file system is wiped out and tickets are lost. >>> >>> Admin is not in readonly mode but any change you do via admin will be >>> lost when the system is reset (every 24 hrs). So you should assume it is >>> readonly. >>> >>> Appadmin works fine. >>> >>> Is the DAL(…) -> get_db() replacement too much to ask to the users? We >>> could do it automatically under the hood once we detect heroku. What do you >>> think? Using get_db gives more flexibility for tweaking, specifically when >>> multiple databases are present. >>> >>> There are two files that need to be created (done by >>> setup-web2py-heroku.sh): requirements.txt and Procfile. We could ship them >>> with web2py but people need to be able to configure them anyway. Should we >>> ship them or let users create them? >>> >>> This should be even easier. People should be able to simply git commit >>> apps (with get_db) and pip install web2py. I do not know how to do it >>> because I do not understand distutil and git well enough yet. Perhaps >>> people should be able to git pull apps directly from the admin running on >>> heroku. >>> >>> >>> Massimo >>> >> --