请原谅任何术语拼写错误,对 SQLite 以外的数据库没有太多经验。我正在尝试复制我在 SQLite 中所做的事情,我可以将数据库附加到第二个数据库并查询所有表。我没有在 SQLite 中使用 SQLAlchemy
我在 Win7/54 上使用 SQLAlchemy 1.0.13、Postgres 9.5 和 Python 3.5.2(使用 Anaconda)。我已经使用 postgres_fdw 连接了两个数据库(在本地主机上)并从辅助数据库中导入了一些表。我可以使用 PgAdminIII 中的 SQL 和使用 psycopg2 的 Python 成功地手动查询连接的表。使用 SQLAlchemy 我尝试过:
# Same connection string info that psycopg2 used
engine = create_engine(conn_str, echo=True)
class TestTable(Base):
__table__ = Table('test_table', Base.metadata,
autoload=True, autoload_with=engine)
# Added this when I got the error the first time
# test_id is a primary key in the secondary table
Column('test_id', Integer, primary_key=True)
并得到错误:
sqlalchemy.exc.ArgumentError: Mapper Mapper|TestTable|test_table could not
assemble any primary key columns for mapped table 'test_table'
然后我尝试了:
insp = reflection.Inspector.from_engine(engine)
print(insp.get_table_names())
并且未列出附加的表(主数据库中的表确实显示)。有没有办法做我想要完成的事情?