1

我在本地 Mac 上有一个 Rails 5.2 应用程序,PostgreSQL 9.6 在 Docker 上运行。该应用程序使用Que来处理后台作业(版本 0.12.3)。

为了让事情顺利进行,我最初在我的~/.bash_profile(postgres9-6 是运行 PG 的容器的名称)中添加了以下内容

alias pg_dump='docker exec postgres9-6 pg_dump'

这样,一切正常:我可以运行迁移和规范。

我正在升级到 Rails 6.0,现在一切都不再有效了。

安装 Rails 6.0.3.2 并更新一些配置文件后,我尝试运行我的 RSpec 套件(RUBYOPT="-W0" bin/rspec spec)但我得到了

导轨中止!执行失败:psql -v ON_ERROR_STOP=1 -q -X -f /Users/sig/Code/traininghub/db/structure.sql traininghub_test

请检查上面的输出是否有任何错误,并确保它psql 已安装在您的 PATH 中并具有适当的权限。

bin/rails:4:in `' Tasks: TOP => db:test:load_structure (通过使用 --trace 运行任务查看完整跟踪)迁移正在等待。要解决此问题,请运行:

    rails db:migrate RAILS_ENV=test No examples found.

不知道为什么它说迁移正在等待这是不正确的,但我尝试运行rails db:migrate RAILS_ENV=test --trace,这会产生以下结果:

** Invoke db:migrate (first_time)
** Invoke db:load_config (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:load_config
** Execute db:migrate
** Invoke db:_dump (first_time)
** Execute db:_dump
** Invoke db:structure:dump (first_time)
** Invoke db:load_config
** Execute db:structure:dump rails aborted! failed to execute: pg_dump -s -x -O -f /Users/sig/Code/traininghub/db/structure.sql traininghub_test

Please check the output above for any errors and make sure that `pg_dump` is installed in your PATH and has proper permissions.

我试图pg_dump直接运行该命令,它不会打印任何错误。

sig$ pg_dump -s -x -O -f /Users/sig/Code/traininghub/db/structure.sql traininghub_test 
sig$

我还将以下行添加到我的~/.bash_profile

alias psql='docker exec postgres9-6 psql'

但我得到同样的错误。

我试图升级que0.14.3(最新的稳定版本),1.0 beta4但结果总是一样的。

我在这里错过了什么吗?

4

0 回答 0