首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Docker中运行rake db:create时出错

在Docker中运行rake db:create时出错
EN

Stack Overflow用户
提问于 2015-06-05 22:37:17
回答 3查看 1.3K关注 0票数 1

我是Docker的新手,然后按照他们的官方教程运行Ruby on Rails和Postgresql。当我运行docker-compose up时一切正常,但是当我尝试docker-compose run web rake db:create命令时,我得到了FATAL: role "root" does not exist错误。

代码语言:javascript
复制
database.yml

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5
  host: db

development:
  <<: *default
  database: myapp_development

test:
  <<: *default
  database: myapp_test

production:
  <<: *default
  database: myapp_production
  username: postgres
  password:
EN

回答 3

Stack Overflow用户

发布于 2015-06-06 18:00:00

您正在以root用户身份运行该命令,并且它正在尝试使用相同的用户名连接到数据库。您尚未在PostgreSQL中创建用户根目录,因此必须这样做。

我建议创建另一个用户名并将其用于连接,即使根名称在PostgreSQL中没有特殊含义,但通常每个系统都有单独的用户/角色更好。

您需要修改数据库连接设置以反映新用户名。

票数 0
EN

Stack Overflow用户

发布于 2015-06-07 15:36:04

我认为最好在您的docker-compose.yml中为RAILS_ENV设置环境值

票数 0
EN

Stack Overflow用户

发布于 2016-01-07 02:01:54

如果您使用的是官方postgres镜像from the docker hub,那么当您运行基于该镜像的容器时启动的postgres服务器的默认用户名是"postgres“,并且不需要密码。您应该将yaml文件更新为如下所示:

database.yml:

代码语言:javascript
复制
    default: &default
      adapter: postgresql
      encoding: unicode
      pool: 5
      host: db
      username: postgres

    development:
      <<: *default
      database: myapp_development

    test:
      <<: *default
      database: myapp_test

    production:
      <<: *default
      database: myapp_production

假设所有三个数据库都在同一个容器(db)上运行,并且该容器已作为"db“链接到rails/应用程序容器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30669274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档