使用不同的 postgres 架构进行 Flask Migrate ( __table_args__ = {'schema': 'test_schema']})

2023-11-29

我正在尝试使用flask、sqlalchemy 和flask_migrate...

但每次运行manage.py migrate时,alembic总是将我的模型检测为新表。

我想我把表参数在我的模型中将表存储在不同的 postgres 模式中:

class Entry(db.Model):
    __table_args__ = {'schema': app.config['BASE_SCH']}
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100))
    slug = db.Column(db.String(100), unique=True)
    body = db.Column(db.Text)
    status = db.Column(db.SmallInteger, default=STATUS_PUBLIC)
    created_timestamp = db.Column(db.DateTime, default=datetime.datetime.now)
    modified_timestamp = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now)

如果我要删除表参数我的模型线,烧瓶迁移工作正常。将我的表存储在公共 postgres 模式中。

那么,如何在 Flask 中使用不同的 postgres 表模式呢?

Thanks!


终于明白了:有一个include_schemas配置中的选项必须设置为True强制 Alembic 在生成迁移之前扫描所有模式。

(稍微)更多细节:http://alembic.zzzcomputing.com/en/latest/api/runtime.html#alembic.runtime.environment.Environment Context.configure.params.include 架构

我并不完全清楚为什么 Alembic/Flask-Migrate 会为非默认模式中的表生成迁移without首先设置此选项...或者更确切地说,它会为非默认模式创建迁移但不会在数据库中发现这些表,这是一个令人惊讶的行为。

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

使用不同的 postgres 架构进行 Flask Migrate ( __table_args__ = {'schema': 'test_schema']}) 的相关文章

随机推荐

  • MATLAB 中的稳定 AccumArray

    MATLAB的内置函数accumarray接受一个函数fun作为第四个参数 A accumarray subs val sz fun 这适用fun到每个元素子集val具有相同的下标subs 然而 该文档指出 如果下标在subs未根据其线性索
  • 在下拉列表内的树层次结构中显示类别/子类别

    我有一个类别表 其中包含字段 id name 和parent id 根类别的parent id 0 现在我想在下拉列表中显示类别列表 结构如下 root category first sub category sub sub categor
  • .NET 4 GUID 是如何生成的?

    我知道有很多问题here以及雷蒙德的出色 像往常一样 post 然而 由于创建 GUID 的算法明显发生了变化 我发现很难获得任何最新信息 这MSDN似乎试图提供尽可能少的信息 关于 NET 4 中如何生成 GUID 我们了解多少 更改了什
  • ID 保存并显示名称 - 带芯片的材质 ui 多选

    我正在使用基于文档示例的 Material UI Multiple Select 我需要保存所选选项的 ID 和显示名称 我尝试了很多方法但没有任何帮助 我需要存储 id 并显示值 请帮助我指导 这是我的代码和盒子link 我也想知道同样的
  • 奇怪的谷歌地图行为 - 瓷砖仅出现在左上象限

    使用谷歌地图数十次 但无法绕过这一点 为地图版本 3 执行 google 的简单 hello world http code google com apis maps documentation javascript tutorial ht
  • 赋值关联性[重复]

    这个问题在这里已经有答案了 赋值运算符有右到左关联性 所以 var x y x y 1 按预期工作 x 等于 1 现在考虑代码 var foo foo x foo n 2 我希望上面的工作像下面这样 var foo n 2 foo x fo
  • 管理两个 NSURLConnection

    我想从两个不同的 kml 文件执行两个异步请求 因此我首先设置两个请求 NSString server1URL NSString stringWithFormat NSMutableURLRequest firstRequest NSMut
  • Github 操作在作业之间共享工作空间/工件?

    尝试使用 Github 的 beta 操作时 我有两项工作 一项是构建代码 另一项是部署代码 但是 我似乎无法在部署作业中获取构建工件 我最新的尝试是为每个作业手动设置具有相同卷的容器映像 根据文档 这应该是解决方案 https help
  • python:类 super() 的代理对象,在指定的类处启动 MRO 搜索

    根据文档 super cls obj returns 将方法调用委托给父级或同级的代理对象 cls 类型的类 我明白为什么super 提供此功能 但我需要稍微不同的东西 我需要创建一个代理对象 将方法调用 和属性查找 委托给类cls本身 和
  • 如何从“请告知 Microsoft 此事”对话框中获取错误报告?

    我编写的一个程序在启动时崩溃 Windows XP 对话框 请告诉 Microsoft 有关此问题的信息 出现 我想知道这个问题 因为这是我的应用程序 问题是 单击 单击链接 查看错误报告的内容 错误报告内容 对话框不允许我的客户将其内容复
  • Delphi:将数据存储在类与记录中,减少内存使用

    当应用程序运行时 我需要在内存中存储 读取和修改大量数据 数据可以比作一棵树 其中每个节点由有限数量的字符串和整数描述 并且具有相当多的子元素 目前数据是使用类 对象存储的 例如 TRootElement class fName fDesc
  • 使用 php 从像素计算图像大小(以英寸或 dpi 为单位)

    假设 300dpi 我需要计算近似的图像尺寸 以英寸为单位 我心中有一个目标图像大小 我想向用户展示他们上传的图像是否足够 或者是否需要拉伸 并据此提供各种条件消息 我已经有了以像素为单位的高度和宽度 只需要知道我猜的数学 DPI 每英寸点
  • 禁用单击按钮事件 C# [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我在 Visual Studio 2013 C 中编程 我想要一个功能来短时间禁用按钮 我试过button Enabled false 但我发现当我在禁用期间单击它时 单击操作会在我在程序
  • 386的“D位”中的“D”代表什么?

    In 关于 GDT 的文章OSDev wiki 描述了用作 CS 描述符的 D 位的标志 如下所示 Sz 尺寸位 如果0选择器定义16位保护模式 如果1它定义了32位保护模式 您可以同时拥有 16 位和 32 位选择器 另一个问题引用了英特
  • 黄瓜/红宝石:可以将“puts”输出到 --format html 文件吗?

    我有一些 ruby 测试 它们调用不同的模块 类 它们详细说明了在执行过程中使用一些 puts 命令所做的事情 如果您在控制台中运行这些测试 那么您将在控制台中看到 puts 命令的输出 但如果您使用以下选项运行测试 ruby format
  • 将 NSString 转换为 NSDate [重复]

    这个问题在这里已经有答案了 可能的重复 将 NSString 转换为 NSDate 然后再转换回来 我向 flickr api 发出请求 它返回以下格式的日期 2013 02 01T06 25 47Z 我如何将其转换为 NSDate 格式
  • Python,Paramiko:如何使用 paramiko 执行“ssh -n user@host cmd”?

    我正在尝试通过 SSH 从 Python 远程执行命令 在这种特殊情况下需要stdin被重定向到 dev null 也就是说 与使用带有 n 标志的 OpenSSH 客户端相同 ssh n user host cmd 你如何实现这个 n P
  • 如何在akka流中的akka​​客户端websocket中使用Flow.map

    我有一个 WebSocket 服务器 我需要通过已建立的 WebSocket 连接向它发送和接收消息 因为 Akka 客户端 WebSocket 不为我们提供传统的websocket send 与java中一样的功能 所以我找到了这个解决方
  • 如何处理多个弹出窗口(material ui)

    我尝试在组件内使用多个弹出窗口 例如 在下面的代码中我有两个弹出窗口 但是当单击两个按钮中的任何一个时 两个弹出窗口都会打开 我们如何处理 onclick 以打开相应的弹出窗口 const anchorEl setAnchorEl Reac
  • 使用不同的 postgres 架构进行 Flask Migrate ( __table_args__ = {'schema': 'test_schema']})

    我正在尝试使用flask sqlalchemy 和flask migrate 但每次运行manage py migrate时 alembic总是将我的模型检测为新表 我想我把表参数在我的模型中将表存储在不同的 postgres 模式中 cl