小编ivr*_*rin的帖子

SQLAlchemy Automap不为没有主键的表创建类

我正在使用具有自动功能的SQL Alchemy v(0.9.1).这允许我自动创建类和关系.http://docs.sqlalchemy.org/en/rel_0_9/orm/extensions/automap.html

我遇到的问题是,当使用automap_base时,我发现并非所有在metadata.tables列表中可用的表都被映射.

准备时没有错误,除了我在调用automap_base()后无法从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)
Run Code Online (Sandbox Code Playgroud)

然后我跑去发现元数据中的所有表都不存在类(我没有在元数据中只使用= []参数)

for mappedclass in Base.classes:
    print mappedclass

for mdtable in metadata.tables:
    print mdtable
Run Code Online (Sandbox Code Playgroud)

只发现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
Run Code Online (Sandbox Code Playgroud)

即Base.class.Example_Table返回以下错误

    ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-15-94492ae1b8ba> in …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

19
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×1

sqlalchemy ×1