小编Edu*_*pes的帖子

如何设置用于测试和开发的 SQLAlchemy 数据库?

我的项目中有以下文件结构:

model/
  models.py
controller/
  controller.py
persistence/
  persistence.py
test/
  test_controller.py
Run Code Online (Sandbox Code Playgroud)

在persistence.py中,我有一段代码:

from sqlalchemy import *
from sqlalchemy.ext.declarative.api import declarative_base
from sqlalchemy.orm.session import sessionmaker

engine = create_engine("sqlite:///database.db", echo=True)
BASE = declarative_base(engine)

def get_session():
     engine = create_engine("sqlite:///database.db", echo=False)
     Session = sessionmaker(bind=engine)
     session = Session()
     return session
Run Code Online (Sandbox Code Playgroud)

在models.py 中使用Base 和engine 来使用声明式方法创建数据库。

在 test_controller 中,我导入了模型和持久性。当我运行测试时,会在测试目录下创建一个数据库。更新、插入、删除等操作执行良好,但在完成单元测试之前 SQLAlchemy 引发以下异常:

DetachedInstanceError: Instance <Account at 0x945378c> is not bound to a Session;   
attribute refresh operation cannot proceed
Run Code Online (Sandbox Code Playgroud)

访问数据库的所有方法总是关闭会话。所以,似乎我打开的不仅仅是会话。

你知道我如何设置一个 sqlalchemy 数据库用于测试和其他开发,就像 Rails 使用相同的模型模块一样?任何的想法?

这里的测试代码:

from model import Account

engine …
Run Code Online (Sandbox Code Playgroud)

python unit-testing sqlalchemy

5
推荐指数
0
解决办法
2427
查看次数

如何使用Lucene实现语音搜索?

我想使用Lucene 6.1.0实现语音搜索,使用Soundex或任何合适的葡萄牙语算法.我在互联网上发现了许多不完整的例子,教导了如何实现自定义标记器,分析器,但似乎这些例子中使用的抽象类在6.1.0版本中并不相同.任何人都可以指出我在哪里可以找到一个很好的文档Lucene,而不仅仅是java文档,没有任何进一步的文档教学如何把事情放在一起?

提前致谢.

java lucene

2
推荐指数
1
解决办法
1594
查看次数

标签 统计

java ×1

lucene ×1

python ×1

sqlalchemy ×1

unit-testing ×1