小编dth*_*dor的帖子

Alembic支持多种Postgres模式

如何使用Alembic --autogenerate迁移SQL Alchemy模型中未硬编码的多个 Postgres模式?(镜像问题的SQLAlchemy支持Postgres架构,但对于Alembic).

特别是,我们使用Postgres模式来分离共享同一组表的不同客户端.此外,客户端之间存在共享内容的模式.SQL Alchemy模型不了解模式,模式是在运行时使用设置的session.execute("SET search_path TO client1,shared").

默认情况下--autogenerate根本没有帮助,因为它检测到模型中不存在的多个模式,最终删除模式并重新创建默认模式中的每个表.

我真的想使用--autogenerate正确的管道来正确设置模式.关于Alembic的API是否/如何做到这一点的任何建议?

python sqlalchemy alembic

13
推荐指数
2
解决办法
4871
查看次数

如何在Postgres中创建包含上限的新日期范围类型?

Postgres附带了一个名为Range Types的很好的功能,它提供了有用的范围功能(重叠,包含等).

我希望使用该daterange类型,但我认为类型是用一个尴尬的选择实现的:排除了日期范围的上限.这意味着如果我将我的值定义为2014/01/01 - 2014/01/31,则显示为,[2014/01/01, 2014/01/31)并且1月31日被排除在范围之外!

我认为这是错误的默认选择.我不能想到现实生活中的任何应用或参考,假设排除了日期范围的结束日期.至少不是我的经验.

我想为包含下限和上限的日期实现范围类型,但是我正在使用Postgres文档墙:关于如何创建新的离散范围类型的参考是神秘的,缺少任何示例(取自文档:创建一个规范函数有点棘手,因为必须在声明范围类型之前定义它.

有人可以提供一些帮助吗?甚至直接实施本身; 它应该是5-10行代码,但将这5-10行放在一起是一项严肃的研究工作.

编辑:澄清:我正在寻找有关如何创建正确类型的信息,以便插入[2014/01/01, 2014/01/31]结果upper(daterange) = '2014/01/31'.使用现有的日期范围类型,此值将"转换"为a [2014/01/01, 2014/02/01)并给出aupper(daterange) = '2014/02/01'

postgresql date-range

4
推荐指数
2
解决办法
4005
查看次数

标签 统计

alembic ×1

date-range ×1

postgresql ×1

python ×1

sqlalchemy ×1