我正在使用具有自動映射功能的SQL Alchemy v(0.9.1)。這使我可以自動創建類和關係。 http://docs.sqlalchemy.org/en/rel_0_9/orm/extensions/automap.htmlSQLAlchemy Automap不爲沒有主鍵的表創建類
我遇到的問題是,當使用automap_base時,我看到並非所有在metadata.tables列表中可用的表都被映射。
準備時,有沒有錯誤,但我打電話automap_base()後,我無法從基地訪問類(如Base.classes.Example_Table)
from sqlalchemy import create_engine, MetaData
from sqlalchemy.orm import create_session
from sqlalchemy.ext.automap import automap_base
engine = create_engine("mysql+mysqldb://")
Base = automap_base()
Base.prepare(engine, reflect = True)
session = create_session(bind = engine)
然後我跑到發現的類不存在對元數據的所有表(我沒有隻使用= []元數據參數)
for mappedclass in Base.classes:
print mappedclass
for mdtable in metadata.tables:
print mdtable
才發現Example_Table(以下情況創建語法)不具有類
CREATE TABLE `Example_Table` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`attributeType` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3290719 DEFAULT CHARSET=latin1
即Base.class.Example_Table返回以下錯誤
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-15-94492ae1b8ba> in <module>()
7 type(metadata.tables)
8
----> 9 Base.classes.Example_Table
/usr/local/lib/python2.7/site-packages/sqlalchemy/util/_collections.pyc in __getattr__(self, key)
172 return self._data[key]
173 except KeyError:
--> 174 raise AttributeError(key)
175
176 def __contains__(self, key):
AttributeError: Example_Table
我不認爲會發生這個問題,因爲我Example_Table名稱中有一個下劃線。
我認爲這個問題與我的Example_Table沒有主鍵有關。 Example_Table僅用於鏈接兩個其他表。