2012-06-03 26 views
0

我使用SQLite與SQLAlchemy的錶行:SQLAlchemy的sqlite的不加載

當我執行以下命令:

engine.execute("select * from teams"); 
<sqlalchemy.engine.base.ResultProxy object at 0x245b190> 

因此,它的工作原理,因爲它返回一個參考

我已經一個.py文件,其中包含班級團隊:

class Team(Base): 
     __tablename__ = 'teams' 
     id = Column(Integer,autoincrement=False, primary_key=True) 
     name = Column(String(255)) 
     flag = Column(String(255)) 
     url = Column(String(255)) 

我導入團隊from classes import

但是當我嘗試使用ORM,我得到以下錯誤:

for instance in session.query(Team): 
...  print instance.id 
... 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/site-packages/SQLAlchemy-0.7.7-py2.7.egg/sqlalchemy/orm/query.py", line 2224, in __iter__ 
    return self._execute_and_instances(context) 
    File "/usr/lib/python2.7/site-packages/SQLAlchemy-0.7.7-py2.7.egg/sqlalchemy/orm/query.py", line 2239, in _execute_and_instances 
    result = conn.execute(querycontext.statement, self._params) 
    File "/usr/lib/python2.7/site-packages/SQLAlchemy-0.7.7-py2.7.egg/sqlalchemy/engine/base.py", line 1450, in execute 
    params) 
    File "/usr/lib/python2.7/site-packages/SQLAlchemy-0.7.7-py2.7.egg/sqlalchemy/engine/base.py", line 1583, in _execute_clauseelement 
    compiled_sql, distilled_params 
    File "/usr/lib/python2.7/site-packages/SQLAlchemy-0.7.7-py2.7.egg/sqlalchemy/engine/base.py", line 1697, in _execute_context 
    context) 
    File "/usr/lib/python2.7/site-packages/SQLAlchemy-0.7.7-py2.7.egg/sqlalchemy/engine/base.py", line 1690, in _execute_context 
    context) 
    File "/usr/lib/python2.7/site-packages/SQLAlchemy-0.7.7-py2.7.egg/sqlalchemy/engine/default.py", line 331, in do_execute 
    cursor.execute(statement, parameters) 
sqlalchemy.exc.OperationalError: (OperationalError) no such table: teams u'SELECT teams.id AS teams_id, teams.name AS teams_name, teams.flag AS teams_flag, teams.url AS teams_url \nFROM teams'() 
+0

您的'session'可能與'engine'綁定的不同數據庫(文件)相連嗎? – van

回答

2

它說,它無法找到表SqlLite(我使用Firefox插件)它的存在和teams-確認那是名字。另外,將錯誤消息中的SQL複製到Sqlite窗口中並查看它是否運行。

+0

是的,我也使用firefox插件,sql語句「SELECT teams.id AS teams_id,teams.name AS teams_name,teams.flag AS teams_flag,teams.url AS teams_url FROM teams」運行 – Noor

+0

有時您需要將數據庫名稱之前,即「mydb.teams」 –