gpt4 book ai didi

python - sqlalchemy 空架构且没有表

转载 作者:太空宇宙 更新时间:2023-11-03 16:09:02 24 4
gpt4 key购买 nike

我正在尝试通过数据库优先方法使用 sqlalchemy 并为现有数据库结构生成模型。数据库是标准的 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)

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

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

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

我应该能够反射(reflect)表对象

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

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

但是,meta.tables 中根本没有表对象。

最佳答案

这是因为 debug.BasicTable 很可能不是您的表的名称。表的名称是 BasicTabledebug 是它的架构。所以:

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

关于python - sqlalchemy 空架构且没有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39455048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com