docker-compose上的rails应用程序:db:migration显示“权限被拒绝”

问题描述 投票:0回答:2

我在docker-compose图像上运行rails应用程序。在我创建用户设计之后,当我运行docker-compose run web rails db:migrate时,它显示以下错误:PG::ConnectionBad: FATAL: could not open relation mapping file "global/pg_filenode.map": Permission denied

我已经尝试了所有解决方案rails和psql相关,所以我猜我的问题是与docker-compose程序不知何故,我也试过sudo但结果是一样的

代码:我运行的命令是在docker-compose run web rails db:migrate之后的docker-compose run web rails g devise usuario

这是输出:

rails aborted!
PG::ConnectionBad: FATAL:  could not open relation mapping file "global/pg_filenode.map": Permission denied
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `initialize'
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `new'
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in `connect'

其余的日志在这个链接:https://hastebin.com/axiboxohem.bash

ruby-on-rails docker-compose database-migration
2个回答
1
投票

你的问题似乎只是与Postgresql有关,检查你的postgres服务是否已启动,或者你是否拥有该文件夹中的权限。看看这个,也许有帮助:Postgres is failing with 'could not open relation mapping file "global/pg_filenode.map" '


0
投票

事实证明,Docker上有多个相同图像的容器。我可以看到用docker ps -a -q安装的额外容器,并用docker rm $(docker ps -a -q)移除它们。这样做对我来说,我猜其中一个容器正在抓住文件。

© www.soinside.com 2019 - 2024. All rights reserved.