Node.js Knex-已更新
我正在努力解决与knex生产环境(heroku)中的迁移相关的问题。我做了一些更改并创建了8个新迁移来更新模型。创建新的迁移后,我已经有47个迁移文件。将更改上传到Heroku后,我像往常一样执行Node.js Knex-已更新,node.js,database,postgresql,migration,knex.js,Node.js,Database,Postgresql,Migration,Knex.js,我正在努力解决与knex生产环境(heroku)中的迁移相关的问题。我做了一些更改并创建了8个新迁移来更新模型。创建新的迁移后,我已经有47个迁移文件。将更改上传到Heroku后,我像往常一样执行knex migrate:latest,但没有效果。我已收到最新的信息 我决定看看knex_migrations表,看看是否有问题。结果是,我可以看到新的迁移没有写入该数据库(请参见图片以供参考) 当我们查看迁移时,它看起来是这样的: 很明显,我们可以看到knex能够运行“2020021619040
knex migrate:latest
,但没有效果。我已收到最新的信息
我决定看看knex_migrations
表,看看是否有问题。结果是,我可以看到新的迁移没有写入该数据库(请参见图片以供参考)
当我们查看迁移时,它看起来是这样的:
很明显,我们可以看到knex能够运行“2020021619040_receiver_company.js”作为最后一个
当我查看knex\u migrations\u lock
表时,唯一存在的条目如下所示:
有人知道如何强制knex运行迁移吗?我使用的knex版本0.16.3
编辑:
我想补充一点,在本地计算机上运行迁移没有问题。此外,我已经检查了服务器上是否存在迁移文件,并且在提取Heroku的当前状态后,我可以看到所有未执行的迁移文件。如果da中未执行迁移更改tabase,您可以尝试手动从knex_migrations
或您的migrations表中删除迁移记录,
并尝试重新应用knex migrate:latest
命令
但在您尝试这种方法之前,请确保保留一个备份,或者首先在您的本地计算机或开发服务器上运行它