SQLite 以外のデータベースの経験があまりないため、用語のタイプミスをお許しください。データベースを2番目のデータベースにアタッチし、すべてのテーブルでクエリを実行できるSQLiteで行うことを複製しようとしています。SQLite で SQLAlchemy を使用していませんでした
Win7/54 で SQLAlchemy 1.0.13、Postgres 9.5、Python 3.5.2 (Anaconda を使用) を使用しています。postgres_fdw を使用して 2 つのデータベース (localhost 上) を接続し、セカンダリ データベースからいくつかのテーブルをインポートしました。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())
アタッチされたテーブルは表示されません (プライマリ データベースのテーブルは表示されます)。私が達成しようとしていることを行う方法はありますか?