【发布时间】:2013-07-30 22:02:30
【问题描述】:
我最近提取了一些代码并运行了 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”后缀是从哪里来的?如何删除它?
【问题讨论】:
-
请出示您的 GemFile
-
Gemfile - pastie.org/private/vszq8qmbgwukpo8f8qm6w
标签: mysql ruby-on-rails activerecord devise