On Feb 12, 2014, at 4:49 AM, Igal Kreimer <[email protected]> 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
