迁移和加载模式都不会向Rails/MySQL数据库添加列

迁移和加载模式都不会向Rails/MySQL数据库添加列,mysql,ruby-on-rails,ruby,rake,rails-migrations,Mysql,Ruby On Rails,Ruby,Rake,Rails Migrations,我已经创建了一个迁移,以便在Rails中的MySQL数据库中添加一个is\u ms\u admin列: class AddIsAdminToUsers < ActiveRecord::Migration def change add_column :users, :is_ms_admin, :boolean end end 在运行rake db:migrate时,迁移运行时不会抛出任何错误。使用rakedb:schema:load也不会出错。两者似乎都取得了成功 但是,当

我已经创建了一个迁移,以便在Rails中的MySQL数据库中添加一个
is\u ms\u admin
列:

class AddIsAdminToUsers < ActiveRecord::Migration
  def change
    add_column :users, :is_ms_admin, :boolean
  end
end
在运行rake db:migrate时,迁移运行时不会抛出任何错误。使用
rakedb:schema:load
也不会出错。两者似乎都取得了成功

但是,当我从MySQL表中选择列名时,只有大多数列存在:

mysql> SELECT `COLUMN_NAME` 
    -> FROM `INFORMATION_SCHEMA`.`COLUMNS` 
    -> WHERE `TABLE_SCHEMA`='metasmoke' 
    ->     AND `TABLE_NAME`='users';
+---------------------+
| COLUMN_NAME         |
+---------------------+
| id                  |
| email               |
| encrypted_password  |
| remember_created_at |
| sign_in_count       |
| current_sign_in_at  |
| last_sign_in_at     |
| current_sign_in_ip  |
| last_sign_in_ip     |
| created_at          |
| updated_at          |
| is_approved         |
+---------------------+
我主要关心的是
is\u ms\u admin
列,但了解两个
reset\u password
列不存在的原因也很有用

我不是从Rails控制台运行所有这些,所以问题不是因为控制台缓存了东西;在重新加载了
信息\u SCHEMA
表之后,很明显,这些列根本没有创建,而不是任何相关问题


为什么该列不存在,我如何修复它?

可能需要更多信息,但我不知道该怎么办-如果您想查看某些内容,请大叫。您可能已经看到了,但为了以防万一,请使用重新加载命令重新加载rails控制台!通过阅读本文,我看到了以下注释:表中的行(可能还有INFORMATION\u SCHEMA.TABLES中的一些其他列)可能与当前表内容不同步,但您可以通过运行ANALYZE来更新它。所以,可能是这样的。@fanta'fraid不是,我仍然有相同的专栏。我认为它实际上不是被创建的,而是一个围绕的问题。@volx757我实际上不在rails控制台中,只是一个mysql shell。重新启动并没有起到任何作用。可能需要更多信息,但我不知道该怎么办-如果你想看到什么,请大叫。你可能已经看到了,但以防万一,请用重新加载命令重新加载rails控制台!通过阅读本文,我看到了以下注释:表中的行(可能还有INFORMATION\u SCHEMA.TABLES中的一些其他列)可能与当前表内容不同步,但您可以通过运行ANALYZE来更新它。所以,可能是这样的。@fanta'fraid不是,我仍然有相同的专栏。我认为它实际上不是被创建的,而是一个围绕的问题。@volx757我实际上不在rails控制台中,只是一个mysql shell。重新启动没有任何作用。
mysql> SELECT `COLUMN_NAME` 
    -> FROM `INFORMATION_SCHEMA`.`COLUMNS` 
    -> WHERE `TABLE_SCHEMA`='metasmoke' 
    ->     AND `TABLE_NAME`='users';
+---------------------+
| COLUMN_NAME         |
+---------------------+
| id                  |
| email               |
| encrypted_password  |
| remember_created_at |
| sign_in_count       |
| current_sign_in_at  |
| last_sign_in_at     |
| current_sign_in_ip  |
| last_sign_in_ip     |
| created_at          |
| updated_at          |
| is_approved         |
+---------------------+