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

-- 



Reply via email to