On Feb 12, 2014, at 4:49 AM, Igal Kreimer <igal.k...@gmail.com> wrote:
> Hello sqlalchemy team. > > im a new user to the alchemy, and doing the tutorial on ur site. > ran ur tutorial on adding information to databases and querying against a > virtual db (sqlite in memory) > > after i thought i got that, i tried testing against a real db - mysql db. > im using the driver of pymysql version 0.4 (i know its kinda old, but when > was using newer version i had other bugs, not related to this topic). OK well definitely get on the latest pymysql, that driver is not super mature so you want to be on the latest. I tried 0.6.1 here and can’t reproduce your issue. > > Traceback (most recent call last): > File "J:/working_dir/TLM/lib/DB_Wrapper/Lab_DB/DB_Reader.py", line 39, in > <module> > read_from_DB() > File "J:/working_dir/TLM/lib/DB_Wrapper/Lab_DB/DB_Reader.py", line 26, in > read_from_DB > print(str(session.query(CpuTable.id.label('id')).all())) > File > "C:\Python33\lib\site-packages\sqlalchemy-0.9.0-py3.3.egg\sqlalchemy\orm\query.py", > line 2264, in all > File > "C:\Python33\lib\site-packages\sqlalchemy-0.9.0-py3.3.egg\sqlalchemy\orm\loading.py", > line 75, in instances > File > "C:\Python33\lib\site-packages\sqlalchemy-0.9.0-py3.3.egg\sqlalchemy\orm\loading.py", > line 75, in <listcomp> > File > "C:\Python33\lib\site-packages\sqlalchemy-0.9.0-py3.3.egg\sqlalchemy\orm\loading.py", > line 74, in <listcomp> > File > "C:\Python33\lib\site-packages\sqlalchemy-0.9.0-py3.3.egg\sqlalchemy\orm\query.py", > line 3440, in proc > File > "C:\Python33\lib\site-packages\sqlalchemy-0.9.0-py3.3.egg\sqlalchemy\engine\result.py", > line 71, in __getitem__ > File > "C:\Python33\lib\site-packages\sqlalchemy-0.9.0-py3.3.egg\sqlalchemy\engine\result.py", > line 317, in _key_fallback > sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column > 'cpu.id’" yes that’s a totally strange issue that I cannot reproduce, running SQLA 0.9.0 / py3.3 / pymysql. one thing that *may* be going wrong is that I see you’re on windows, and there might be case sensitivity issues happening. Though I’m not really sure how, I can use any name for the label and of course it works. here’s the test case I’m using, you get the same results with this? from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class A(Base): __tablename__ = 'a' id = Column(Integer, primary_key=True) e = create_engine("mysql+pymysql://scott:tiger@localhost/test", echo=True) Base.metadata.drop_all(e) Base.metadata.create_all(e) sess = Session(e) sess.add_all([A(), A(), A()]) print(sess.query(A.id.label('id')).all()) print(sess.query(A.id.label('foobar')).all())
signature.asc
Description: Message signed with OpenPGP using GPGMail