RubyMine MySQL 仅在测试数据库中忽略 database.yml 中的密码

问题描述

[编辑] 我相信这实际上是 Rubymine 的问题。当我通过 Ubuntu 终端正常运行 RSpec 测试时,它们运行良好。当我使用 Rubymine 内置的测试运行程序时,它会给出错误。我使用的是 Rubymine 2020.3.1。

在我使用 MysqL 的 Rails 6 应用程序中,我可以使用 rails s 在开发模式下完美运行该应用程序,并且 rails console 也可以运行。但是,当我尝试通过 RSpec 运行测试时,出现以下错误

MysqL2::Error::ConnectionError:
  Access denied for user 'team'@'localhost' (using password: NO)

尽管在我的 database.yml 文件中我提供了密码:

default: &default
  adapter: MysqL2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: team
  password: <%= ENV['team_db_password'] %>
  host: localhost

development:
  <<: *default
  database: teamassess_development

test:
  <<: *default
  database: teamassess_test

production:
  <<: *default
  database: teamassess_production
  username: teamassess
  password: <%= ENV['TEAMASSESS_DATABASE_PASSWORD'] %>

MysqL 用户对所有数据库拥有完全权限,我可以使用 MysqL -u team -p 登录 MysqL shell,然后输入我的密码。从这里我可以毫无问题地连接到开发和测试数据库。 我还进入了 Rails 控制台并验证了 ENV['team_db_password'] 产生了预期值(确实如此),所以我不明白是什么让 Rails 忘记使用密码。

我在 Ubuntu 20.10 上使用 MysqL 8.0.22 版,以及 MysqL gem 0.5.3 版。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...