sequelize db:migrate 和 postgres 的问题

Posted

技术标签:

【中文标题】sequelize db:migrate 和 postgres 的问题【英文标题】:problem with sequelize db:migrate and postgres 【发布时间】:2020-10-01 14:08:10 【问题描述】:

我是一个初学者,我正在尝试部署一个后端应用程序。我正在使用带有 ubuntu 服务器的 aws EC2,问题如下。在我机器上的应用程序中,命令“yarn sequelize db: migrate”正常运行,执行迁移并创建表。但不在服务器上。我已经更改了环境变量,甚至将信息直接放在代码中,即使它不运行迁移。它做的最多的是:deploy@ip-xxx.xxx.xxx.xxx:~/app/server $ yarn sequelize db:migrate 纱线运行 v1.22.4 $ /home/deploy/app/server/node_modules/.bin/sequelize db: 迁移

Sequelize CLI [节点:14.4.0,CLI:5.5.1,ORM:5.21.6]

加载配置文件“src/config/database.js”。 在 0.54 秒内完成。

就好像我没有进入迁移文件夹一样

我在 docker 镜像上使用 postgres。

【问题讨论】:

【参考方案1】:

TL;DR:尝试为 sequelize-cli 的所有依赖项使用最新版本,如此响应的最后一个代码块所示。

我不能 100% 确定这是否与我遇到的问题相同。但是我已经陷入类似的情况两天了。基本上当我运行“npx sequelize db:migrate”时,它会显示以下内容,

Sequelize CLI [Node: 14.4.0, CLI: 5.5.1, ORM: 5.21.6]

Loaded configuration file "src / config / database.js".
Using environment "development".

然后它就停在那里了!我深入研究了 sequelize-cli 库,并在其中放入了一些控制台日志语句以查看失败的原因。最终我发现它以某种方式失败了

return sequelize.authenticate().then(() =>  

/sequelize-cli/lib/core/migrator.js 中的这一行

最终,这让我想知道这是否是外部依赖问题。然后我使用最新的依赖项,如下在我的 package.json 中

"dependencies": 
    "pg": "^8.2.1",
    "sequelize": "^5.21.13",
    "sequelize-cli": "^5.5.1"
,

我意识到我之前使用的是“pg”:“^7.18.2”。然后这为我解决了这个问题。

【讨论】:

你是救世主!出于某种原因,它仅适用于您指定的版本号。 很高兴有帮助!:) 我挖得更深了,发现这是根本原因,github.com/sequelize/sequelize/issues/12158 在我的情况下,将 pg 更新到 8.2.1 版解决了我的问题

以上是关于sequelize db:migrate 和 postgres 的问题的主要内容,如果未能解决你的问题,请参考以下文章

错误:当我执行“sequelize db:migrate”时,“请手动安装 sqlite3 包”

rails to grails - db:create 和 db:migrate 发生了啥?

rake db:migrate db:reset 和 db:schema:load 之间的区别

使用 rake db:migrate 迁移数据不会改变它

Rails 3 和 Heroku:推送时自动“rake db:migrate”?

如何使用 rake db:migrate 仅回滚一步