跳转到主要内容

封装sqlalchemy建模基础设施。

项目描述

risclog.sqlalchemy

risclog.sqlalchemy 封装了 sqlalchemy 建模基础设施。它通过提供常用功能在特殊类上简化了(多)数据库环境的设置和sqlalchemy模型的使用。

此软件包与Python版本3.7到3.11兼容。

开发risclog.sqlalchemy

作者::

gocept <mail@gocept.com>

过时的在线文档::

https://pythonhosted.org/risclog.sqlalchemy/

PyPI 页面:

https://pypi.ac.cn/project/risclog.sqlalchemy/

问题跟踪器:

https://github.com/gocept/risclog.sqlalchemy/issues/

源代码:

https://github.com/gocept/risclog.sqlalchemy

当前变更日志:

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_sessionexpire_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)

初始发布

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

risclog.sqlalchemy-7.2.tar.gz (32.6 kB 查看哈希值)

上传时间

构建分布

risclog.sqlalchemy-7.2-py3-none-any.whl (35.4 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面