0

我有一个创建表的迁移,我需要访问该表的模型以创建另一个表。迁移似乎没有识别出原始表已经创建,所以为了确保我在我的代码中放置了一个调试器,当我进行模型调用时,它说User(Table doesn't exist)即使在 mysql 中我看到它正在创建。看起来迁移看不到数据库的当前状态,有什么想法可以解决这个问题吗?

只是为了更具体地说明我的问题:我正在尝试使用 Archivist 创建我当前用户表的存档,所以我有

class ArchivedHeuristicReviewsTable < ActiveRecord::Migration
  def self.up
    create_table "users" do |t|
      t.string  "name"
      ...
    end
    debugger
    Archivist.update User
  end

  def self.down
    drop_table :users
    drop_table :archived_users
  end
end

档案管理员不会创建 archived_user 表,所以当我在调试器处停下来做用户时,我得到了User(Table doesn't exist).

我什至尝试在较新的迁移中调用 Archivist,以确保完成所有用户创建,但它仍然无法识别用户表。

有任何想法吗?

4

1 回答 1

1

这应该可以解决问题:

User.connection.schema_cache.clear!
User.reset_column_information
于 2013-05-04T12:44:43.017 回答