【发布时间】:2013-06-30 11:17:56
【问题描述】:
我最近将我的应用升级到 Rails 4(从 Rails 3.2)。
但似乎该应用程序不再找到一些 mysql 表,例如名为 Accidents 的表。
在应用程序中我发现此错误:
Mysql2::Error: Table 'gms.accidents' doesn't exist: SHOW FULL FIELDS FROM `accidents`
好吧,好像表不存在了,然后(看到是dev模式,重置DB没问题),我在终端运行rake db:schema:load,但是:
-- create_table("accidents", {:force=>true})
rake aborted!
Mysql2::Error: Tablespace for table '`gms`.`accidents`' exists. Please DISCARD the tablespace before IMPORT.: CREATE TABLE `accidents`
[...]
发生了什么?该表不存在但存在??
为什么应用程序找不到一些表格?
【问题讨论】:
-
3 建议: 1. 检查您的 config/database.yml 并确保它具有正确的连接信息。 2. 检查 mysql 工具或提示中的数据并检查那里的内容 3. 告诉我们哪些表有效?
-
感谢@MichaelDurrant 的建议。综合中: 1. 可以; 2.用mysql工具,表不存在(不知道为什么); 3...;我已经手动删除了数据库(使用 rake db:drop 不起作用...),然后重新创建另一个数据库。现在看来可行,但发生的事情很奇怪。
-
好的,那我把它作为答案发布,我也这样做了。
标签: ruby-on-rails-3.2 rails-activerecord ruby-on-rails-4 mysql2 ruby-2.0