首页 > 解决方案 > 我可以在每个场景之前使用 create_engine()、sessionmaker()、declarative_base() 或其他方法清空内存中的 sqlite 测试数据库吗?

问题描述

我的 SQLalchemy 基础是models.domain.base这样实例化的:

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite://')
Session = sessionmaker(bind=engine)
Base = declarative_base()

现在我想在每个测试场景之前清空数据库并尝试这样做:

def before_scenario(context, scenario):
    from models.domain.base import Session as domain_session_class
    domain_session = domain_session_class()
    domain_session.close()
    domain_session.begin()

这给了我错误sqlite3.OperationalError: table ADDRESSES already exists

问候

弗洛里安

标签: pythonsqlalchemy

解决方案


推荐阅读