db = DAL('sqlite://heroku.test.sqlite')

isn't this problem related to the fact that trying to use a sqlite db on 
heroku is forbidden ? (read-only filesystem!)

On Monday, December 3, 2012 6:00:26 PM UTC+1, Massimo Di Pierro wrote:
>
> Can you try run this:
>
> heroku addons:add heroku-postgresql:dev
>
> On Sunday, 2 December 2012 08:41:53 UTC-6, Joe Repka wrote:
>>
>> 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