Knex - 已经是最新的

Posted

技术标签:

【中文标题】Knex - 已经是最新的【英文标题】:Knex - Already up to date 【发布时间】:2020-10-30 13:26:15 【问题描述】:

我正在努力解决与生产环境 (heroku) 上 knex 中的迁移有关的问题。我进行了一些更改并创建了 8 个新的迁移来更新模型。创建新迁移后,我已达到 47 个迁移文件。将更改上传到 Heroku 后,我照常执行knex migrate:latest,但没有任何效果。我收到了Already up to date的消息。

我决定查看knex_migrations 表,看看那里是否有问题。我可以看到新迁移未写入该数据库的结果(请参阅图片以供参考。

当我们查看迁移时,它看起来像这样:

很明显,我们可以看到 knex 能够将“20200216191040_receiver_company.js”作为最后一个运行。

当我查看knex_migrations_lock 表时,那里存在的唯一条目如下所示:

有谁知道如何强制 knex 运行迁移?我用的knex版本0.16.3

编辑:

我想在本地机器上添加它,我在运行迁移时没有问题。此外,我检查了服务器上是否存在迁移文件,在提取 Heroku 的当前状态后,我可以看到所有未执行的迁移文件。

【问题讨论】:

【参考方案1】:

如果迁移的更改没有在数据库中实现,可以尝试手动从knex_migrations或者你的迁移表中删除迁移的记录, 并尝试重新应用knex migrate:latest 命令。

但在您尝试这种方式之前,请确保进行备份,或者先在本地计算机或开发服务器上运行它。

【讨论】:

以上是关于Knex - 已经是最新的的主要内容,如果未能解决你的问题,请参考以下文章

KnexTimeoutError: Knex: 获取连接超时

已经是最新的 gitlab 管道 ***

Git,合并已经是最新的但有差异?

升级 Knex 后出现“获取连接超时”

Knex.js 迁移问题:因`关系“knex_migrations”不存在而失败`

为啥 Git 说我的主分支“已经是最新的”,即使它不是?