我最近提取了一些代码并运行了 rspec。测试顺利通过。但是,当我运行“rake db:migrate”和“rake db:prepare”时,我遇到了一个问题。
现在没有 rspec 测试通过,每次失败都会引用相同的错误:
Mysql2::Error: Table 'app_test.admins' doesn't exist: SHOW FULL FIELDS FROM `admins`
问题是,该数据库名称未在代码中的任何位置指定。在 database.yml 中,指定了“app_test”,没有“.admins”后缀。
同样,当我运行 rails server 时,我收到以下错误:
Mysql2::Error: Table 'app_dev.admins' doesn't exist: SHOW FULL FIELDS FROM `admins`
yml 中仅指定了“app_dev”。
rake 命令(db:migrate、db:test:prepare、db:create、db:drop 等)都是在修改 database.yml 指定的数据库,只是 Rails 正在寻找带有 '.admins' 后缀的数据库. 这个“.admins”后缀是从哪里来的,我该如何删除它?