Re: [SQLObject] SqlObject Sqlmeta fromDatabase problem
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Jeremy H. <jer...@gm...> - 2012-03-26 09:30:36
|
Thank you for your response. I'm sorry for not including these details for I have been struggling with this problem for sometime. These suggestions have been tried or already implemented with the same result. Pleased let me know if you have any other suggestions. def __init__(self): connection_string = 'mysql://user:password@127.0.0.1:3306/pySMS' conn = connectionForURI(connection_string,debug = True,autoCommit = True) trans = conn.transaction() sqlhub.processConnection = conn Company.createTable(ifNotExists = True, connection=trans) test0.py file import sys from sqlobject import * from pySMS import Companys if __name__ == "__main__": pysoft = Companys() Traceback (most recent call last): File "C:\Pysoft\Software\SMS Development\tests\test0.py", line 5, in <module> from pySMS import Companys File "C:\Pysoft\Software\SMS Development\pySMS\__init__.py", line 1, in <module> from Company import Companys File "C:\Pysoft\Software\SMS Development\pySMS\Company.py", line 137, in <module> class Company(SQLObject): File "C:\Python27\lib\site-packages\sqlobject-1.2.1-py2.7.egg\sqlobject\declarative.py", line 92, in __new__ cls.__classinit__(cls, new_attrs) File "C:\Python27\lib\site-packages\sqlobject-1.2.1-py2.7.egg\sqlobject\main.py", line 789, in __classinit__ sqlmeta.addColumnsFromDatabase() File "C:\Python27\lib\site-packages\sqlobject-1.2.1-py2.7.egg\sqlobject\main.py", line 441, in addColumnsFromDatabase conn = connection or soClass._connection File "C:\Python27\lib\site-packages\sqlobject-1.2.1-py2.7.egg\sqlobject\dbconnection.py", line 902, in __get__ return self.getConnection() File "C:\Python27\lib\site-packages\sqlobject-1.2.1-py2.7.egg\sqlobject\dbconnection.py", line 915, in getConnection "No connection has been defined for this thread " AttributeError: No connection has been defined for this thread or process On Mon, Mar 26, 2012 at 3:52 AM, Oleg Broytman <ph...@ph...> wrote: > Hi! > > On Sun, Mar 25, 2012 at 06:56:32PM -0500, Jeremy Hoyle wrote: > > I have a problem while trying to use the "fromDatabase = True" option in > > sqlmeta. Any time I enable this. it gives me the connection error below. > Is > > there another attribute I need to do before doing this? I saw another > > thread with this problem but the solution was enable the connection > before > > the class which I have done. > > > > from sqlobject import * > > > > class Companys(SQLObject): > > def __init__(self): > > connection_string = 'mysql://user:password@127.0.0.1:3306/pySMS' > > conn = connectionForURI(connection_string,debug = > True,autoCommit = > > True) > > trans = conn.transaction() > > sqlhub.processConnection = conn > > Company.createTable(ifNotExists = True, connection=conn) > > Company._connection.debug = True > > A number of problems here. > 1. The connection is created in Companys.__init__ which is not called, > at least it is not called when SQLObject's metaclass processes > fromDatabase. fromDatabase requires an open connection. > 2. A transaction is opened but never used. Transaction (trans, in your > case) has to be used instead of connection (in sqlhub, or in every > SQLObject call that accepts connection). > > > class Company(SQLObject): > > > > class sqlmeta: > > fromDatabase = True > > lazyUpdate = True > > cacheValues = True > > > > Company_Name = StringCol(length = 256, default = None) > > Company_Address = StringCol(length = 256, default = None) > > Company_Phone = StringCol(length = 256, default = None) > > > > Traceback (most recent call last): > > File "C:\Pysoft\Software\SMS Development\tests\test0.py", line 5, in > > <module> > > from pySMS import Companys > > File "C:\Pysoft\Software\SMS Development\pySMS\__init__.py", line 1, in > > <module> > > from Company import Companys > > File "C:\Pysoft\Software\SMS Development\pySMS\Company.py", line 138, > in > > <module> > > class Company(SQLObject): > > File > > > "C:\Python27\lib\site-packages\sqlobject-1.2.1-py2.7.egg\sqlobject\declarative.py", > > line 92, in __new__ > > cls.__classinit__(cls, new_attrs) > > File > > > "C:\Python27\lib\site-packages\sqlobject-1.2.1-py2.7.egg\sqlobject\main.py", > > line 789, in __classinit__ > > sqlmeta.addColumnsFromDatabase() > > File > > > "C:\Python27\lib\site-packages\sqlobject-1.2.1-py2.7.egg\sqlobject\main.py", > > line 441, in addColumnsFromDatabase > > conn = connection or soClass._connection > > File > > > "C:\Python27\lib\site-packages\sqlobject-1.2.1-py2.7.egg\sqlobject\dbconnection.py", > > line 902, in __get__ > > return self.getConnection() > > File > > > "C:\Python27\lib\site-packages\sqlobject-1.2.1-py2.7.egg\sqlobject\dbconnection.py", > > line 915, in getConnection > > "No connection has been defined for this thread " > > AttributeError: No connection has been defined for this thread or process > > Oleg. > -- > Oleg Broytman http://phdru.name/ ph...@ph... > Programmers don't die, they just GOSUB without RETURN. > > > ------------------------------------------------------------------------------ > This SF email is sponsosred by: > Try Windows Azure free for 90 days Click Here > http://p.sf.net/sfu/sfd2d-msazure > _______________________________________________ > sqlobject-discuss mailing list > sql...@li... > https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss > |