【问题标题】:Where are Hasura migrations stored in DB?Hasura 迁移存储在 DB 中的什么位置?
【发布时间】:2021-11-20 22:07:43
【问题描述】:
  • 我有一个包含 3 个环境的 Hasura 项目:本地、暂存和生产
  • 为了在本地使用来自 PROD 的最新数据进行开发,我编写了一个在本地转储和恢复 PROD db 的脚本
  • 但是,当尝试迁移本地恢复的 PROD db 时,我遇到了问题,因为迁移状态已损坏。一些迁移已在 PROD 上运行,但它们显示为未在本地运行,尽管它是完全相同的数据库。
  • 在针对 PROD 和本地运行 hasura migrate status 时,我确实看到了不同的结果
  • 但是,r 在 PROD 上检查表 hbd_catalog.schema_migrations 时,它在本地包含完全相同的数据...

更令人困惑的是,虽然 PROD 正确将我的一些迁移标记为已运行,但它们的时间戳并未出现在 PROD db 上的迁移表中...

Hasura 是否使用其他地方来跟踪这些迁移?

【问题讨论】:

    标签: hasura


    【解决方案1】:

    您使用的是哪个版本的 Hasura?在 Hasura 1.x 中,schema_migrations 表是跟踪迁移的位置,但在 Hasura 2.x 中,这发生了变化,它们现在作为 JSON blob 存储在 cli_state 列中的 hdb_version 表中。

    从 1.x 升级到 2.x 后我也有类似的困惑,因为 schema_migrations 表仍然留在后面,这让我觉得它仍在使用,但那里的任何记录都只是残留的,您可以安全地删除表。

    【讨论】:

    • 谢谢,我会接受你的回答!这破坏了我的工作流程,我在那里创建了一个问题:github.com/hasura/graphql-engine/issues/7610
    • 哦哇刚刚看了你打开的问题。不幸的是,在使用托管云产品时,迁移信息对您是隐藏的。希望他们尽快解决这个问题
    • @JesseCarter 很有趣。 Hasura团队在升级说明中没有提到它?也许最好让他们这样做
    • @AlexYu 最好告诉他们做什么,删除表?我自己托管 Hasura,所以这不是一个选项,但即便如此,我还是对新的迁移存储进行了相当多的测试,以确定旧的 schema_migrations 表被完全忽略
    • @JesseCarter 如果 hasura 团队为hdb_catalog 写的内容多于:“此部分正在进行中。目录中添加了其他表和列以支持新的自上次更新以来的功能。”
    猜你喜欢
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2010-11-20
    • 2021-01-17
    • 2021-07-28
    • 2015-10-01
    • 1970-01-01
    相关资源
    最近更新 更多