如何在 Alembic 迁移中使用现有的 sqlalchemy 枚举 (Postgres)

2024-03-06

在过去的某个时候,我运行了一次 alembic 迁移,它创建了一个users桌子像...

def upgrade():
    ...
    op.create_table(
        "users",
        sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
        ...
        sa.Column("type", sa.Enum("Foo", "Bar", "Baz", name="usertype"), nullable=False),
        ...
    )
    ...

...它会自动创建名为的枚举usertype与价值观"Foo", "Bar", "Baz".

现在,我想创建一些其他表也引用相同的枚举。例如。,

def upgrade():
    ...
    op.create_table('foobar',
        sa.Column('id', sa.Integer(), autoincrement=True, nullable=False),
        ...
        sa.Column('user_type', sa.Enum(< ???????? >), nullable=False),
        ...
    )

引用的语法是什么existing enum?

我似乎无法在文档中找到答案:https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Enum https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Enum


Postgres 有两个部分可以实现这一点。

  1. Specify create_type=False
  2. Use sqlalchemy.dialects.postgresql.ENUM https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM (not sqlalchemy.Enum)

Eg:

from sqlalchemy.dialects import postgresql

sa.Column('my_column', postgresql.ENUM(name='my_enum', create_type=False))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Alembic 迁移中使用现有的 sqlalchemy 枚举 (Postgres) 的相关文章

随机推荐

  • 使用 boost::asio::async_read() 的问题

    这是我使用的代码 class Server void Server accepted std cout lt lt Accepted lt lt std endl boost array
  • 创建新的 virtualenv 挂起

    我有一台 MacBook Pro 我从 pylonsbook com virutalenv py 下载了 virtualenv py 当我输入 python virtualenv py no site packages env 它输出 Ne
  • CoreData Swift 和瞬态属性获取器

    关于在 Swift 中使用 Core Data 时实现计算属性有什么建议吗 使用生成的 ManagedObject 类 我尝试重写 getter 但收到错误 计算属性上不允许使用 NSManaged 这意味着您不能覆盖瞬态 计算的 属性的
  • AngularJs 指令 - 如何从指令内获取属性值

    知道如何从指令内部访问属性值吗 angular module portal directives directive languageFlag routeParams function params return function scop
  • 如何使命名管道在 C++ 和 .NET 之间工作?

    我在让命名管道在 c 和 NET 之间工作方面经历了一段非常艰难的时期 我在创建在 2 个 C 应用程序或 2 个 NET 应用程序之间运行的命名管道时没有遇到任何问题 我对这种通信没有问题 我在某些项目中使用这种情况 C 方面 LPTST
  • SendMessage 模拟右键单击使目标应用程序崩溃

    我正在编写一个 C 自动化工具 由于 Microsoft UI 自动化不提供任何模拟右键单击或弹出上下文菜单的方法 因此我正在使用SendMessage改为执行此操作 我宁愿不使用SendInput因为我不想抓住焦点 当我打电话时SendM
  • 如何下载 WatchKit? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道 WatchKit 何时可供 iOS 开发者下载 Xcode 6 是否会包含一个模拟器以允许在
  • 找不到模块“./App.svelte”或其相应的类型声明

    我有一个将电子与 svelte 集成以及打字稿支持集成的设置 当我运行rollup编译 svelte 应用程序的脚本 我找不到模块 App svelte错误如下图所示 Plugin typescript rollup plugin type
  • PHP 警告:非法字符串偏移

    我是 PHP 新手 今天 PHP 从 5 3 3 版本迁移到 5 4 4 版本 Debian Squeeze 到 Debian Wheezy 之后 我从 Apache 日志中收到此错误 gt PHP 警告 xyz 中的非法字符串偏移 php
  • 如何在实体框架 4.3.1 中禁用迁移?

    有没有办法在 Entity Framework 4 3 1 中禁用迁移 我从项目中删除了迁移文件夹以及数据库中生成的表 但它不起作用 如何删除迁移 如果您不想使用迁移 但同时希望 EF 为您创建数据库 则只需设置正确的数据库初始值设定项 D
  • keras.backend的clear_session()方法没有清理拟合数据

    我正在研究不同类型数据质量的拟合精度结果的比较 好数据 是特征值中没有任何NA的数据 坏数据 是特征值中具有 NA 的数据 坏数据 应该通过一些值修正来修复 作为值修正 它可能会用零或平均值替换 NA 在我的代码中 我尝试执行多个拟合过程
  • 为什么这是一个最终递归可变参数宏?

    以下构造在 VisualStudio 2013 中进行编译 我刚刚创建了一个新的 consoleApplication 项目 并且仅更改了主 cpp 因此您只需粘贴它并尝试一下即可 它显然所做的是创建一个最终递归可变参数宏 include
  • Python 代码:几何布朗运动 - 出了什么问题?

    我对 Python 还很陌生 但是对于大学论文 我需要应用一些模型 最好使用 Python 我花了几天时间处理我附加的代码 但我真的帮不上忙 出了什么问题 它没有创建一个看起来像带有漂移的标准布朗运动的随机过程 我的参数 如 mu 和 si
  • Windows 通用项目不支持 VS2017 页面

    从昨天开始我遇到了一个相当不愉快的问题 我清除了 NuGet 缓存 因为我无法让 NuGet 包与我的代码之一一起使用 但这没有帮助 反而搞砸了我之前编写的 UWP 应用程序 我的代码中的每个元素都会出现错误 如下所示 在 XAML 中 主
  • PostgreSQL中如何实现嵌套INSERT语句?

    我有两张桌子 group and groupmembers 在插入行时group表 我还想插入两个值 groupid 来自组表的 ID 和userid 创建该组的用户的 ID 到groupmembers桌子 这些是表格 CREATE TAB
  • 如何将根(裸)域重定向到 www - heroku 和 zerigo

    我有一个域 example com 和 www example com 我正在使用 Heroku 和 Zerigo 作为 DNS 现在我有一个从我的 Hostgator 帐户从根域到 www example com 的转发 但这不起作用 我
  • python 的 swig 类型映射:输入和输出数组

    我想在 Python 中使用一个 C 函数 extern int convertAtoB stateStruct myStruct const double PointA 3 double PointB 3 使用 SWIG 我想我需要定义一
  • Web API 2 和 .NET 4.5.1 迁移后 GlobalConfiguration.Configure() 不存在

    我最近开始关注本指南 http www asp net mvc tutorials mvc 5 how to upgrade an aspnet mvc 4 and web api project to aspnet mvc 5 and w
  • Flutter - BloC Cubit 函数不发出状态

    我正在创建一个 Flutter 应用程序 我在项目中添加了一个 BloC 以管理状态 我创建了一个包含数据的列表 我想使用 添加 按钮手动将项目添加到 ListView 我写了一段代码 我的物品 肘节 class ItemCubit ext
  • 如何在 Alembic 迁移中使用现有的 sqlalchemy 枚举 (Postgres)

    在过去的某个时候 我运行了一次 alembic 迁移 它创建了一个users桌子像 def upgrade op create table users sa Column id sa Integer autoincrement True n