sqlalchemy空架构,没有表格

时间:2016-09-12 16:44:35

标签: python sql-server sqlalchemy

我试图通过数据库第一种方法使用sqlalchemy并为现有数据库结构生成模型。 db是标准的SQLServer(express)。

我可以连接到我的数据库并通过以下

查询
from sqlalchemy import create_engine, MetaData, Table
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base

__connectionString = "DSN=databaseDSN;Trusted_Connection=yes"

db_engine = create_engine('mssql+pyodbc:///?odbc_connect=%s' % __connectionString, echo=True)
db_session = scoped_session(sessionmaker(bind=db_engine))

result = db_session.execute("SELECT * FROM debug.BasicTable")
for row in result.fetchmany(10):
    print(row)

当我尝试反映下面的数据库结构时,我无法看到任何实际的表,并且以下引发了NoSuchTableError

myTable= Table('debug.BasicTable', meta, autoload=True, autoload_with=db_engine)

来自常见教程http://pythoncentral.io/sqlalchemy-faqs/

我应该能够反映表格对象

Base = declarative_base()
Base.metadata.reflect(db_engine)

meta = MetaData()
meta.reflect(bind=db_engine)

然而,meta.tables中根本没有表对象。

1 个答案:

答案 0 :(得分:1)

这是因为debug.BasicTable最不可能是你桌子的名字。您的表名为BasicTabledebug是其架构。所以:

Table('BasicTable', meta, schema="debug", autoload=True, autoload_with=db_engine)