Trunk appears to work on Windows now.
I think there's a redundant line in there (line 3867):
self.folder = folder # line 3867
self.db_codec = db_codec
self.folder = folder or '$HOME'+os.sep+thread.folder.split(
os.sep+'applications'+os.sep,1)[1]
On Tue, Aug 14, 2012 at 1:30 AM, Massimo Di Pierro <
[email protected]> wrote:
> Ok. this is in trunk. Still need testing, there may be other issues. The
> $HOME in that line assumes this is running on GAE (or linux) and not on
> Windows.
>
>
> On Monday, 13 August 2012 13:10:03 UTC-5, Jonathan Lundell wrote:
>
>> Change '/applications/' to os.sep + 'applications' + os.sep
>>
>> On Aug 13, 2012, at 10:40 AM, Alexei Vinidiktov <[email protected]>
>> wrote:
>>
>> The contents of thread.folder: C:\Users\alexei\Dev\web2py\web**
>> 2py.googlecode.com <http://web2py.googlecode.com>\**
>> applications\vocabilis\**databases
>>
>> On Mon, Aug 13, 2012 at 11:11 PM, Massimo Di Pierro <
>> [email protected]> wrote:
>>
>>> any way you can log what is in thread.folder?
>>>
>>>
>>> On Monday, 13 August 2012 10:38:48 UTC-5, Alexei Vinidiktov wrote:
>>>
>>>> It gives me the error:
>>>>
>>>> self.folder = thread.folder.split('/**applicat**ions/',1)[1]
>>>>
>>>> IndexError: list index out of range
>>>>
>>>> Full traceback:
>>>>
>>>> ERROR 2012-08-13 15:36:00,799 dal.py:6586] DEBUG: connect attempt 0,
>>>> connection error:
>>>> Traceback (most recent call last):
>>>> File
>>>> "C:\Users\alexei\Dev\web2py\we****b2py.googlecode.com<http://web2py.googlecode.com>
>>>> \gluon\dal.****py", line 6573, in __init__
>>>> self._adapter = ADAPTERS[self._dbname](*args)
>>>> File
>>>> "C:\Users\alexei\Dev\web2py\we****b2py.googlecode.com<http://web2py.googlecode.com>
>>>> \gluon\dal.****py", line 3845, in __init__
>>>> self.folder = thread.folder.split('/**applicat**ions/',1)[1]
>>>> IndexError: list index out of range
>>>>
>>>>
>>>> On Mon, Aug 13, 2012 at 11:06 AM, Massimo Di Pierro <
>>>> [email protected]> wrote:
>>>>
>>>>> Can you try replace
>>>>>
>>>>> self.folder = folder or '$HOME/'+thread.folder.split('******
>>>>> /applications/',1)[1]
>>>>>
>>>>> with
>>>>>
>>>>> self.folder = thread.folder.split('**/**applicat**ions/',1)[1]
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Wednesday, 8 August 2012 18:11:04 UTC-5, Alexei Vinidiktov wrote:
>>>>>
>>>>>> Ok. I've managed to connect to MySQL from GAE local dev server on
>>>>>> Windows if I change line 3845 in dal.py to this:
>>>>>>
>>>>>> self.folder = ""
>>>>>>
>>>>>> instead of (self.folder = folder or '$HOME/'+thread.folder.split('***
>>>>>> ***/applications/',1)[1])
>>>>>>
>>>>>> I don't know if it breaks anything though.
>>>>>>
>>>>>> On Thu, Aug 9, 2012 at 6:03 AM, Alexei Vinidiktov <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> The problem is still not resolved in trunk.
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Aug 6, 2012 at 12:56 PM, Alexei Vinidiktov <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Here it is: db = DAL('google:sql://**vocabilispro****
>>>>>>>> ject:vocabilis/**vocabilis')
>>>>>>>>
>>>>>>>> I pass the password and the user name via App Launcher parameters
>>>>>>>> as suggested in the GAE SDK docs: --mysql_user=root
>>>>>>>> --mysql_password=xxxxxx
>>>>>>>> --mysql_host=localhost --mysql_port=3306
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Aug 6, 2012 at 7:59 AM, Massimo Di Pierro <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Can you show your complete connection string (masking any
>>>>>>>>> password of course)?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Saturday, 4 August 2012 02:11:30 UTC-5, Alexei Vinidiktov wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sat, Aug 4, 2012 at 1:56 PM, Alexei Vinidiktov <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> I'm need hep figuring out how to set up a local GAE development
>>>>>>>>>>> server with MySQL.
>>>>>>>>>>>
>>>>>>>>>>> MySQL connection parameters are specified via App Launcher
>>>>>>>>>>> application settings: --mysql_user=root --mysql_password=xxxxxx
>>>>>>>>>>> --mysql_host=localhost --mysql_port=3306
>>>>>>>>>>>
>>>>>>>>>>> When I launch my web2py app with GAE Launcher on my local
>>>>>>>>>>> Windows box I get this erorr message:
>>>>>>>>>>>
>>>>>>>>>>> ############
>>>>>>>>>>> ERROR 2012-08-04 06:28:43,515 dal.py:5962] DEBUG: connect
>>>>>>>>>>> attempt 0, connection error:
>>>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>>> File
>>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\dal.py",
>>>>>>>>>>> line 5955, in __init__
>>>>>>>>>>> self._adapter = ADAPTERS[self._dbname](*args)
>>>>>>>>>>> File
>>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\dal.py",
>>>>>>>>>>> line 3310, in __init__
>>>>>>>>>>> self.folder = folder or '$HOME/'+thread.folder.split('******
>>>>>>>>>>> **/applications/',1)[1]
>>>>>>>>>>> IndexError: list index out of range
>>>>>>>>>>> #############
>>>>>>>>>>>
>>>>>>>>>>> What does the following line do?
>>>>>>>>>>>
>>>>>>>>>>> self.folder = folder or '$HOME/'+thread.folder.split('********
>>>>>>>>>>> /applications/',1)[1]
>>>>>>>>>>>
>>>>>>>>>>> If I comment out "or
>>>>>>>>>>> '$HOME/'+thread.folder.split('********/applications/',1)[1]"
>>>>>>>>>>> in DAL.py and relaunch the dev server, the application appears to
>>>>>>>>>>> be able
>>>>>>>>>>> to connect to MySQL but then I get a different error message:
>>>>>>>>>>>
>>>>>>>>>>> ########
>>>>>>>>>>> INFO 2012-08-04 06:42:35,142 rdbms_mysqldb.py:102]
>>>>>>>>>>> Connecting to MySQL with kwargs {'passwd': 'xxxxxx', 'unix_socket':
>>>>>>>>>>> '',
>>>>>>>>>>> 'host': 'localhost', 'port': 3306, 'user': 'root'}
>>>>>>>>>>> ERROR 2012-08-04 06:42:35,153 warnings.py:29]
>>>>>>>>>>> C:\Users\alexei\Dev\web2py\voc********abilis.net<http://vocabilis.net>\gluon\dal.py:1386:
>>>>>>>>>>> Warning: Can't create database 'vocabilis'; database exists
>>>>>>>>>>> ret = self.cursor.execute(*a, **b)
>>>>>>>>>>>
>>>>>>>>>>> ERROR 2012-08-04 06:42:35,575 restricted.py:155] Traceback
>>>>>>>>>>> (most recent call last):
>>>>>>>>>>> File
>>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\main.py",
>>>>>>>>>>> line 510, in wsgibase
>>>>>>>>>>> session._try_store_in_db(**reque******st, response)
>>>>>>>>>>> File
>>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\globals.py",
>>>>>>>>>>> line 561, in _try_store_in_db
>>>>>>>>>>> record_id = table.insert(**dd)
>>>>>>>>>>> File
>>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\dal.py",
>>>>>>>>>>> line 6829, in insert
>>>>>>>>>>> return self._db._adapter.insert(self,********
>>>>>>>>>>> self._listify(fields))
>>>>>>>>>>> File
>>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\dal.py",
>>>>>>>>>>> line 928, in insert
>>>>>>>>>>> raise e
>>>>>>>>>>> ProgrammingError: (1146, "Table 'vocabilis.web2py_session_**voca
>>>>>>>>>>> ******bilis' doesn't exist")
>>>>>>>>>>> #########
>>>>>>>>>>>
>>>>>>>>>>> The vocabilis database does exist. It was created earlier when I
>>>>>>>>>>> connected to MySQL from a non GAE environment.
>>>>>>>>>>>
>>>>>>>>>>> If I specify a different non-existent database in the connection
>>>>>>>>>>> string, then after relaunching the application vith the GAE
>>>>>>>>>>> Launcher I get
>>>>>>>>>>> this error message:
>>>>>>>>>>>
>>>>>>>>>>> #######
>>>>>>>>>>> INFO 2012-08-04 06:44:45,415 rdbms_mysqldb.py:102]
>>>>>>>>>>> Connecting to MySQL with kwargs {'passwd': 'xxxxxx', 'unix_socket':
>>>>>>>>>>> '',
>>>>>>>>>>> 'host': 'localhost', 'port': 3306, 'user': 'root'}
>>>>>>>>>>> ERROR 2012-08-04 06:44:45,828 restricted.py:155] Traceback
>>>>>>>>>>> (most recent call last):
>>>>>>>>>>> File
>>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\main.py",
>>>>>>>>>>> line 510, in wsgibase
>>>>>>>>>>> session._try_store_in_db(**reque******st, response)
>>>>>>>>>>> File
>>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\globals.py",
>>>>>>>>>>> line 561, in _try_store_in_db
>>>>>>>>>>> record_id = table.insert(**dd)
>>>>>>>>>>> File
>>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\dal.py",
>>>>>>>>>>> line 6829, in insert
>>>>>>>>>>> return self._db._adapter.insert(self,********
>>>>>>>>>>> self._listify(fields))
>>>>>>>>>>> File
>>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\dal.py",
>>>>>>>>>>> line 928, in insert
>>>>>>>>>>> raise e
>>>>>>>>>>> ProgrammingError: (1146, "Table 'vocabilis3.web2py_session_**voc
>>>>>>>>>>> ******abilis' doesn't exist")
>>>>>>>>>>> #######
>>>>>>>>>>>
>>>>>>>>>>> So the application appears to be unable to create the session
>>>>>>>>>>> table.
>>>>>>>>>>>
>>>>>>>>>>> I'm running Windows, Python 2.7, web2py 1.99.7, MySQL 5.5
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> I had a connection string with "migrate_enabled=False". I tried
>>>>>>>>>> removing it, then I got this error message:
>>>>>>>>>>
>>>>>>>>>> ###########################
>>>>>>>>>> ERROR 2012-08-04 07:07:40,513 restricted.py:155] Traceback
>>>>>>>>>> (most recent call last):
>>>>>>>>>> File
>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>
>>>>>>>>>> \gluon\restricted.**p******y", line 205, in restricted
>>>>>>>>>> exec ccode in environment
>>>>>>>>>> File
>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>
>>>>>>>>>> \applications\**vocab******ilis\models\db.py", line 23, in
>>>>>>>>>> <module>
>>>>>>>>>> session.connect(request, response, db = db)
>>>>>>>>>> File
>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\globals.py",
>>>>>>>>>> line 488, in connect
>>>>>>>>>> migrate=table_migrate,
>>>>>>>>>> File
>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\dal.py",
>>>>>>>>>> line 6320, in define_table
>>>>>>>>>> polymodel=polymodel)
>>>>>>>>>> File
>>>>>>>>>> "C:\Users\alexei\Dev\web2py\vo********cabilis.net<http://vocabilis.net>\gluon\dal.py",
>>>>>>>>>> line 707, in create_table
>>>>>>>>>> % (table._db._uri_hash, tablename))
>>>>>>>>>> File "C:\Python27\lib\ntpath.py", line 96, in join
>>>>>>>>>> assert len(path) > 0
>>>>>>>>>> TypeError: object of type 'NoneType' has no len()
>>>>>>>>>> ###########################
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Alexei Vinidiktov
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Alexei Vinidiktov
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Alexei Vinidiktov
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Alexei Vinidiktov
>>>>>>
>>>>> --
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Alexei Vinidiktov
>>>>
>>> --
>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> Alexei Vinidiktov
>>
>> --
>>
>>
>>
>>
>> --
>
>
>
>
--
Alexei Vinidiktov
--