我在本地 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'
但我得到同样的错误。
我试图升级que
到0.14.3
(最新的稳定版本),1.0 beta4
但结果总是一样的。
我在这里错过了什么吗?