封装sqlalchemy建模基础设施。
项目描述
risclog.sqlalchemy
risclog.sqlalchemy 封装了 sqlalchemy 建模基础设施。它通过提供常用功能在特殊类上简化了(多)数据库环境的设置和sqlalchemy模型的使用。
此软件包与Python版本3.7到3.11兼容。
开发risclog.sqlalchemy
- 作者::
- 过时的在线文档::
- PyPI 页面:
- 问题跟踪器:
- 源代码:
- 当前变更日志:
https://github.com/gocept/risclog.sqlalchemy/blob/master/CHANGES.rst
运行测试
在仓库根目录下简单运行 ./pytest。
文档
为了构建 Sphinx 文档,使用已安装的 python 运行以下命令,其中 sphinx 已安装
$ python setup.py build_sphinx
为了上传 Sphinx 文档,使用已安装的 python 运行以下命令,其中 sphinx-pypi-upload 已安装
$ python setup.py upload_sphinx
risclog.sqlalchemy 的变更日志
7.2 (2024-04-19)
为 datetime.time 对象添加 json 编码器。
7.1 (2024-03-22)
修复 sqlalchemy 1.3 兼容性在 Database.empty()。
7.0 (2024-03-21)
引入新的 RoutingSession 方法 execute_with_bind() 以执行具有特定绑定的语句。
RoutingSession.using_bind() 现已弃用,并保留以保持向后兼容性。现在它不再返回新的会话实例,而是返回一个适配器,将会话方法的最小子集映射到原始会话实例。此更改是必要的,因为创建新会话实例并复制所有原始会话状态的先前实现在使用 SQLAlchemy 1.4 时不稳定。(一个原因是会话的新自动开始功能改变了与 zope.sqlalchemy 的交互。)
6.1 (2024-03-12)
为 uuid.UUID 对象添加 json 编码器。
添加 risclog.sqlalchemy.interfaces.Deleted 事件,当对象从数据库中删除时触发。
6.0 (2023-09-26)
引入 ModelCache 以减少处理大量 sqlalchemy 模型时的 DB 请求次数。
允许指定 keep_session 和 expire_on_commit。
停止支持 Python 3.6。
停止支持 SQLAlchemy 1.0 和 1.1。
添加对 Python 3.10 和 3.11 的支持。
限制支持的 SQLALchemy 到 < 2。
5.1 (2021-04-28)
功能
确保与 SQLAlchemy >= 1.4 兼容。
其他更改
使用 github actions 作为 CI。
5.0 (2020-11-03)
不兼容的更改
停止支持 Python 2。
从 setup.py 中删除 python2 额外内容。
功能
不再限制为 zope.component < 4.4.1(在 3.0 中引入)。
4.0 (2020-02-17)
不兼容的更改
通过要求至少这个版本来支持 zope.sqlalchemy >= 1.3。(较旧版本仅支持 zope.sqlalchemy <= 1.2。)
停止支持 PyPy, PyPy3, Python 3.4 和 3.5。
其他更改
添加对 Python 3.7, 3.8, 3.9a3 的支持。
迁移到 Github。
3.0 (2018-01-16)
停止支持 Python 3.3。
重新引入 RoutingSession.using_bind,因为它对于在多数据库环境中执行查询是必需的。它已在版本 2.0 中删除。
暂时将 zope.component < 4.4.1 锁定,因为我们正在使用该包中的一个私有变量,该变量最近已被删除。
2.3 (2017-04-06)
将 .fixtures.database__selenium_testing 修复件添加到将 SQLAlchemy 会话处理切换到与实时服务器相同的方式。使用此修复件会导致使用数据库对象提交后出现 DetachedInstanceError 异常。它必须再次从数据库中获取。
从 sdist 中省略与 buildout、测试或 mercurial 相关的文件。
2.2 (2017-01-12)
支持 Python 3.6 和 PyPy3。
修复 setup.py 以不再使用绝对路径。
2.1 (2016-01-25)
添加对 pypy 的兼容性。
还删除了对 psycopg2 的显式依赖关系,因为它是 PostgreSQL 特定的依赖项,且与 pypy 不兼容。您需要 psycopg2cffi 才能在 pypy 上运行 risclog.sqlalchemy。
2.0 (2015-12-18)
删除 RoutingSession.using_bind,要求 SQLAlchemy >= 1.0。(#13968)
更新了Alembic API调用,需要Alembic >= 0.7。 (#13968)
添加了文档。 (#13952)
1.8 (2015-09-29)
正式支持Python 3.3至3.5。
在setup.py中设置了alembic和SQLAlchemy的最大支持版本号。
1.7.1 (2014-10-15)
修复了测试模式检测中的错误,使其也能与sqlite一起工作。
1.7 (2014-07-29)
让.model.Object.create使用**kw构造函数而不是自己执行setattr。
将db.empty中的commit设置为可选。
1.6 (2014-06-23)
使测试设置/拆卸更加独立于IDatabase实用程序。
将pyramid依赖代码设置为可选,因为它是一个可选要求。
1.5.1 (2014-03-31)
将项目迁移到bitbucket.org并准备公开发布。
1.5 (2014-03-06)
调整外部项目的测试依赖,因此不需要pyramid。 (#1458)
1.4 (2014-01-27)
清空整个数据库时不截断spatial_ref_sys。 (#13144)
1.3 (2013-12-18)
清空整个数据库(使用db.empty(engine))时不截断alembic_versions。
修复create_defaults,使其可以与多个引擎一起使用。 (#1172)
1.2 (2013-12-13)
修复了setup.py。
1.1 (2013-12-13)
允许.db.Database.empty()不重启序列。(如果用户不允许调用ALTER SEQUENCE,这可能是必要的。)
为JSON渲染器创建工厂,以便可以通过参数进行自定义。 (#1037)
1.0 (2013-12-11)
注意:为了提供多数据库支持,进行了向后不兼容的更改。您需要更改
要使用pyramid序列化器和调用.serializer.patch(),请使用pyramid额外功能。
.model中的更改
使用.model.declarative_base(cls)将类注册为SQLAlchemy declarative_base。
使用自己的declarative_base,因为.model.Object已被删除。
创建自己的ReflectedObject,因为.model.ReflectedObject已被删除。
.db.Database中的更改
要获取实例,请使用.db.get_database(testing=<True|False>)。
要使用实用程序注册数据库,请使用register_engine。
empty现在期望获取引擎作为第一个参数,并允许通过(cascade=True)级联。
_verify已被删除,现在使用_verify_engine。
setup_utility已被删除,现在在__init__中完成。
要访问以前的engine属性,请使用get_engine。
close已被重命名为drop_engine。
要为数据库创建所有表,请使用create_all。
.testing中的更改
setUpDB丢失了第一个参数,因为它没有被使用。
setUp现在期望一个字典或None,请参阅其文档字符串。
提供为新创建的模型插入默认值的方法。 (#1137)
添加了对Alembic的架构迁移支持。
删除了对Python 2.6的支持。
添加了创建py.test数据库固件的小工具函数。
将pyramid声明为测试依赖项,因此测试只需要test额外功能。
由于我们使用plone.testing.zca导入该test额外功能的依赖项,因此将测试依赖项声明为plone.testing[test]。
0.6 (2013-06-27)
在测试中添加了.db.Database的便利方法,用于拆卸。
更新到Buildout 2。
使用py.test作为测试运行器。
添加了Python 3.3兼容性。
0.5 (2013-06-14)
添加了数据库方法以设置数据库实用程序和清空表。
添加测试层,该层设置数据库实用程序(需要plone.testing)。
0.4 (2013-06-07)
添加辅助程序以提供对SQLAlchemy映射对象、日期、日期时间和小数的透明JSON编码。(#39)
在基模型上添加 create_defaults 类方法,可用于将测试数据创建到数据库中。
0.3 (2013-06-04)
修复反射和非反射对象的数据库设置。
0.2 (2013-06-04)
在反射对象模型旁边添加非反射对象模型。
0.1 (2013-06-03)
初始发布
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。