跳转到主要内容

带有自定义方言后缀的SQLAlchemy的Amazon Redshift方言的分叉版本

项目描述

Amazon Redshift方言的SQLAlchemy。

安装

该软件包可在PyPI上获得

pip install sqlalchemy-redshift

用法

DSN格式与常规Postgres类似

>>> import sqlalchemy as sa
>>> sa.create_engine('redshift+psycopg2://username@host.amazonaws.com:5439/database')
Engine(redshift+psycopg2://username@host.amazonaws.com:5439/database)

有关此方言支持的Redshift特定功能的详细信息,请参阅RedshiftDDLCompiler文档

运行测试

测试是通过tox运行的,可以使用以下命令运行

$ tox

但是,除非设置了以下环境变量,否则此命令不会运行集成测试

  • REDSHIFT_HOST

  • REDSHIFT_PORT

  • REDSHIFT_USERNAME

  • PGPASSWORD(这是Redshift实例密码)

  • REDSHIFT_DATABASE

  • REDSHIFT_IAM_ROLE_ARN

请注意,指定的 IAM 角色需要与 redshift 集群关联,并且具有创建数据库和表以及删除它们的正确权限。在您的 shell 中导出这些环境变量并运行 tox 将会对真实的 redshift 实例运行集成测试。在针对生产实例运行这些测试时请谨慎行事。

持续集成 (CI)

项目 CI 是使用 AWS CodePipeline 和 CloudFormation 构建的。请参阅 ci/ 文件夹和包含的 README.txt,了解如何启动项目的 CI。

发布

要执行发布,您需要成为 GitHub 和 PyPI 上项目的管理员。如果您需要该访问权限,请联系维护者。

您需要一个 ~/.pypirc 文件,其中包含您的 PyPI 凭据以及以下设置

[zest.releaser]
create-wheels = yes

要执行发布,请运行以下命令

python -m venv ~/.virtualenvs/dist
workon dist
pip install -U pip setuptools wheel
pip install -U tox zest.releaser
fullrelease  # follow prompts, use semver ish with versions.

发布器将处理更新包中的版本数据以及 CHANGES.rst 中的版本,并对仓库进行标记和上传到 PyPI。

0.8.14 (2023-04-07)

  • 覆盖失败于 redshift 的上游 postgres 方法(Pull #266

  • 修复非超级用户时表格反射损坏(Pull #276

  • 修复 1.4 FutureEngine 的损坏反射(Pull #277

0.8.13 (2023-03-28)

  • 添加 spectrum 支持(Pull #263

  • 停止支持 Python 3.5

0.8.12 (2022-12-08)

  • 修复 SQLAlchemy 的“supports_statement_cache”(Pull #259

0.8.11 (2022-07-27)

  • 禁用 redshift_connector 语句缓存(Pull #257

0.8.10 (2022-07-21)

  • 支持 HLLSKETCH Redshift 数据类型(Pull #246

  • 禁用 supports_statement_cache(Pull #249

  • 修复文档、lint CI 依赖问题(Pull #250

  • 修复 redshift_connector 语句的列编码问题(Pull #255

0.8.9 (2021-12-15)

  • 支持 Redshift 数据类型的检查(Pull #242

0.8.8 (2021-11-03)

  • 移除对 Python 2.7 的支持;现在需要 python >=3.4Pull #234

  • 支持 GEOMETRY,SUPER Redshift 数据类型(Pull #235

0.8.7 (2021-10-27)

  • 初始 SQLAlchemy 2.0.x 支持(《a href="https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/pull/237" rel="nofollow">Pull #237》)

0.8.6 (2021-09-22)

  • 添加 RedshiftDialect_redshift_connector(《a href="https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/pull/232" rel="nofollow">Pull #232》)

  • 创建 RedshiftDialectMixin 类。添加 RedshiftDialect_psycopg2cffi(《a href="https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/pull/231" rel="nofollow">Pull #231》)

0.8.5 (2021-08-23)

  • 支持 TIMETZ 数据类型(《a href="https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/pull/229" rel="nofollow">Pull #229”)

  • 修复 RelationKey 未引用的问题(《a href="https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/pull/228" rel="nofollow">Pull #228”)

0.8.4 (2021-07-15)

  • 通过按模式获取/缓存元数据而不是整个数据库来提高反射性能(《a href="https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/pull/223" rel="nofollow">Pull #223”)

0.8.3 (2021-07-07)

  • 支持 SQLAlchemy 1.4.x(《a href="https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/pull/221" rel="nofollow">Pull #221”)

0.8.2 (2021-01-08)

  • 允许在 COPY 和 UNLOAD 命令中提供多个角色 ARN。这允许第一个角色假定其他角色,如 此处 所述。

0.8.1 (2020-07-15)

  • 支持在 COPY 和 UNLOAD 命令中使用基于角色的访问控制 AWS 分区。这允许在例如 GovCloud 中使用这些命令。

0.8.0 (2020-06-30)

  • 添加带有 CASCADE 选项的删除物化视图(《a href="https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/pull/204" rel="nofollow">Pull #204”)

  • 修复无效的 SQLAlchemy 版本比较(《a href="https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/pull/206" rel="nofollow">Pull #206”)

0.7.9 (2020-05-29)

0.7.8 (2020-05-27)

0.7.7 (2020-02-02)

  • 为 Python 3.9 兼容性从 collections.abc 导入 Iterable(问题 #189

  • UNLOAD 命令中添加了对 Parquet 格式的支持(问题 #187

0.7.6 (2020-01-17)

  • 修复了 SQLAlchemy >= 1.3.11 中 sortkey 反射的不可哈希类型错误(问题 #180

  • 公开从方言导入的支持类型(问题 #181

  • 反射列注释(问题 #186

0.7.5 (2019-10-09)

  • 将 psycopg2 包的版本检查扩展到也支持 psycopg2-binary 和 psycopg2cffi(问题 #178

0.7.4 (2019-10-08)

  • 删除对 psycopg2 的硬依赖,但要求在运行时存在该包(问题 #165

  • 将列上的 info 从 info 更改为关键字参数,以支持 SQLAlchemy >= 1.3.0(问题 #161

  • 在 redshift late binding 视图中添加对列信息的支持(问题 #159

  • UNLOAD 中添加对 MAXFILESIZE 参数的支持。(问题 #123

  • 添加对 CREATE LIBRARY 命令的支持。(问题 #124

  • 添加对 ALTER TABLE APPEND 命令的支持。(问题 #162

  • CSV 格式添加到 UnloadFromSelect。(问题 #169

  • 更新保留词列表(添加“az64”和“language”)(问题 #176

0.7.3 (2019-01-16)

  • COPYUNLOAD 命令中添加对 REGION 参数的支持。(问题 #90

0.7.2 (2018-12-11)

  • 更新测试以适应 Redshift 和 SQLAlchemy 的变化(问题 #140

  • UnloadFromSelect 命令中添加 header 选项(问题 #156

  • 在 COPY 命令中添加对 Parquet 和 ORC 文件格式的支持(问题 #151

  • 官方支持 Python 3.7(《a href="https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/pull/153" rel="nofollow">问题 #153》)

  • 通过直接使用系统表来获取表元数据,避免操作搜索路径(问题 #147

0.7.1 (2018-01-17)

  • 修复与 SQLAlchemy 1.2.0+ 的不兼容性(问题 #138

0.7.0 (2017-10-03)

  • 不使用外部模式枚举 search_path问题 #120

  • 从 get_pk_constraint 和 get_foreign_keys 返回约束名称

  • 使用枚举值(Enum)为 Format、Compression 和 Encoding。对于这些参数类型,弃用字符串参数(问题 #133

  • 使用过渡ACM证书包更新包含的证书(问题 #130

0.6.0 (2017-05-04)

  • 支持在COPY和UNLOAD命令中实现基于角色的访问控制(问题 #88

  • 将max_identifier_length增加到127个字符(问题 #96

  • 修复了包含点号的表名在反射时导致错误的bug(问题 #97

  • 通过缓存表约束信息来提高反射性能(问题 #101

  • 支持在COPY命令中使用BZIP2压缩(问题 #110

  • 允许测试容忍Redshift中的新默认列编码(问题 #114

  • 从Redshift文档中引入一组保留词(问题 #94 <https://github.com/sqlalchemy-redshift/sqlalchemy-redshift/issues/94> _)

0.5.0 (2016-04-21)

  • 支持在非公共模式中反射外键到表(问题 #70

  • 修复了在包含空格或逗号的列名上使用DISTKEY和SORTKEY时无法使用的bug。这是命令如__table_args__ = {‘redshift_sortkey’: (‘foo, bar’)}的一个破坏性行为变更。以前,这将按foobar命名的列排序。现在,它按命名列为foo, bar的列排序。(问题 #74

0.4.0 (2015-11-17)

  • 将包名更改为sqlalchemy_redshift,以符合其他方言的命名约定;现在,redshift_sqlalchemy包会发出一个DeprecationWarning并引用sqlalchemy_redshift。将在未来的版本中删除redshift_sqlalchemy兼容性包。(问题 #58

  • 修复了反射表在某些CREATE TABLE语句中可能具有不正确的列顺序的bug,尤其是对于具有IDENTITY约束的列。(问题 #60

  • 修复了在表的模式不在当前search_path中时,反射表可能引发NoSuchTableError的bug。(问题 #64

  • 将python 3.5添加到集成测试的版本列表中。(问题 #61

0.3.1 (2015-10-08)

  • 修复了0.3.0版本中引入的CopyCommand破坏性更改:感谢solackerman。(问题 #53

    • 当省略format时,查询不再附加FORMAT AS …。这使得默认值与正常redshift查询相同。

    • 修复STATUPDATE作为COPY参数的问题

0.3.0 (2015-09-29)

  • 使视图支持更符合SQLAlchemy标准。现在,get_view_definition的输出不再包含尾随分号,视图在作为Table对象反射时也不再引发异常。(问题 #46

  • 将RedShiftDDLCompiler重命名为RedshiftDDLCompiler。(问题 #43

  • 更新命令(问题 #52

    • 在CopyCommand中公开可选的TRUNCATECOLUMNS。

    • 将所有其他COPY参数添加到CopyCommand。

    • 将命令移动到它们自己的模块。

    • 在CopyCommand中支持有序列的插入。

0.2.0 (2015-09-04)

  • 使用SYSDATE而不是NOW()。感谢bouk。(问题 #15

  • 默认使用SSL,使用硬编码的AWS Redshift CA。(问题 #20

  • 重构CopyCommand,包括支持指定格式和压缩类型。(问题 #21

  • 明确要求“dialect_options”需要SQLAlchemy >= 0.9.2。(问题 #13

  • 重构UnloadFromSelect,包括支持指定所有已记录的Redshift选项。(问题 #27

  • 修复python 2中的SORTKEY的unicode问题。(问题 #34

  • 添加支持Redshift DELETE语句,其中在WHERE子句中引用其他表。感谢 haleemur。 (问题 #35

  • 当尝试反射一个不存在的表时,引发NoSuchTableError。(问题 #38

0.1.2 (2015-08-11)

  • 将postgresql.visit_rename_table注册为redshift的alembic RenameTable。感谢 bouk。 (问题 #7

0.1.1 (2015-05-20)

  • 将RedshiftImpl注册为alembic第三方方言。

0.1.0 (2015-05-11)

  • 第一个可以从PyPI安装的sqlalchemy-redshift版本

项目详情


下载文件

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

源分发

preset-sqlalchemy-redshift-0.8.14.tar.gz (37.9 kB 查看哈希)

上传时间

由以下组织支持