2016-09-12 5 views
0

私は、データベースの最初のアプローチでsqlalchemyを使用して、既存のデータベース構造のモデルを生成しようとしています。 dbは標準のSQLServer(express)です。sqlalchemy空のスキーマおよびテーブルなし

私は私のデータベースに接続し、私は実際のテーブルのいずれかを見ることができませんし、次はNoSuchTableError

を上げるの下に、データベースの構造を反映しようとすると、次の

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) 

を経由して、それを照会することができます私はテーブルオブジェクトを反映することができるはず共通チュートリアルhttp://pythoncentral.io/sqlalchemy-faqs/

から

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

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

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

ただし、メタオブジェクトには表オブジェクトはまったくありません。

答えて

1

これは、debug.BasicTableがあなたのテーブルの名前ではないからです。テーブルの名前はBasicTableで、debugというスキーマがあります。したがって:

Table('BasicTable', meta, schema="debug", autoload=True, autoload_with=db_engine) 
関連する問題