2017-07-17 155 views
1

我想让我的更新数据库更快,这就是为什么我想要使用批量操作。我有一个测试桌女巫包含大约200k行。我每天都要清理桌子并加载新的数据。当我一个接一个的时候,我需要2个小时。Flask-SQLAlchemy中的批量操作问题。找不到绑定配置(...)

我想把所有的数据放入字典并插入一个操作。

我使用类似下面的代码,但有些错误。你知道我应该改变什么吗?

sqlalchemy.exc.UnboundExecutionError: Could not locate a bind configured on mapper Mapper|TEST|TEST or this Session

我的数据库表:

class TEST(db.Model): 
    ID = db.Column(db.Integer, primary_key=True) 
    PN = db.Column(db.String(45)) 
    AMOUNT = db.Column(db.String(6)) 

,并插入代码:

from sqlalchemy.orm import mapper, Session 
s=Session() 

s.bulk_insert_mappings(TEST, 
    [dict(PN='TEST2', AMOUNT=200), dict(PN='TEST3', AMOUNT=300), dict(PN='TEST5', AMOUNT=500)] 
) 

回答

1

我建议从flask_sqlalchemy导入会话。

from flask_sqlalchemy import Session 

如果您配置的烧瓶SQLAlchemy的正确flask_sqlalchemy内部配置如下混乱的幕后。


When do I make a sessionmaker?

要导入的会话走错了路。您必须将其绑定到create_engine

from sqlalchemy.orm import mapper, Session 
engine = create_engine('sqlite3://...') 
s = Session(bind=engine)