Pyramid SQLAlchemy 数据库更改在重新加载时消失
Pyramid SQLAlchemy database changes disappear on reload
我刚开始构建我的网络应用程序,从金字塔教程开始工作。
当我将一个项目添加到我的数据库时,它会正确地持久化,但是当我更改金字塔中的某些内容并需要重新启动服务器时
$VENV/bin/pserve development.ini --reload
我的所有更改都丢失了。有谁知道为什么会这样?
我更改了 initialize_db.py 脚本以构建演示数据库,并将 sessionmaker 更改为
session = scoped_session(sessionmaker(extension=ZopeTransactionExtension('changed')))
我试过 session.commit()
和 session.flush()
,但没有成功。
您还应该配置 pyramid_tm
(事务管理器); 实际上 提交了更改。现在看来您没有提交更改/只是重复使用从请求到另一个请求的相同脏未提交会话。
例如如果您遵循 wiki2
, it assumes,您使用 alchemy
脚手架创建了带有 pcreate
的最小项目。
无论如何,请确保 development.ini
that you're using contains
pyramid.includes =
pyramid_debugtoolbar
pyramid_tm <--- this here
我刚开始构建我的网络应用程序,从金字塔教程开始工作。
当我将一个项目添加到我的数据库时,它会正确地持久化,但是当我更改金字塔中的某些内容并需要重新启动服务器时
$VENV/bin/pserve development.ini --reload
我的所有更改都丢失了。有谁知道为什么会这样?
我更改了 initialize_db.py 脚本以构建演示数据库,并将 sessionmaker 更改为
session = scoped_session(sessionmaker(extension=ZopeTransactionExtension('changed')))
我试过 session.commit()
和 session.flush()
,但没有成功。
您还应该配置 pyramid_tm
(事务管理器); 实际上 提交了更改。现在看来您没有提交更改/只是重复使用从请求到另一个请求的相同脏未提交会话。
例如如果您遵循 wiki2
, it assumes,您使用 alchemy
脚手架创建了带有 pcreate
的最小项目。
无论如何,请确保 development.ini
that you're using contains
pyramid.includes =
pyramid_debugtoolbar
pyramid_tm <--- this here