Rails 6:在多数据库应用程序中进行模型测试时,为什么要在数据库名称后附加一个数字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails 6:在多数据库应用程序中进行模型测试时,为什么要在数据库名称后附加一个数字?相关的知识,希望对你有一定的参考价值。

我在Rails 6.0.2.2应用程序中具有以下多数据库设置:

development:
  primary:
    <<: *default
    database: myapp_development
    migrations_paths: db/migrate/primary
  other:
    <<: *default
    database: other_development
    migrations_paths: db/migrate/other

[当我尝试对任一数据库中的模型运行模型测试时,都会得到

mysql2::Error::ConnectionError: Access denied for user 'my_user'@'localhost' to database 'myapp_test-3'

对于每个测试,它在数据库名称后附加一个不同的数字。数据库用户my_user确实有权访问myapp_test数据库,但是当Rails向数据库名称添加连字符和整数时,这显然无济于事。

我已经搜索了所有可以想到的内容,但是找不到任何信息。

感谢任何信息或建议(如果我错过了明显的内容,我们深表歉意...

答案
在Rails 6中检查并行测试。https://edgeguides.rubyonrails.org/testing.html#parallel-testing。这就是Rails创建多个DB的原因。

以上是关于Rails 6:在多数据库应用程序中进行模型测试时,为什么要在数据库名称后附加一个数字?的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 3.1 中使用 Capybara、Rspec 和 Selenium 进行测试时登录失败

如何在 Rails 中正确使用 ActiveStorage 进行模型测试?

在 Rails 6 中更新底层模型时如何使动作缓存过期?

使用 RSpec 为带有 Rails 的 Redis 编写测试

Rails 急切加载

使用 Rails 和 Devise 进行功能测试。在我的固定装置里放啥?